EDITIERT:
Seit dem Posten dieser Antwort hat MailChimp Version 2 & 3 seiner API veröffentlicht. Version 3 wird ab 2017 die einzige unterstützte Version sein. Sobald ich die Möglichkeit habe, sie zu testen, werde ich diese Antwort für API-Version 3 aktualisieren.
MailChimp API v3.0
Gemäß der Benachrichtigung oben auf dieser Seite werden alle früheren Versionen der API nach 2016 nicht mehr unterstützt.
Meine Lösung verwendet PHP im Hintergrund für die Handhabung der API und jQuery zur Erleichterung des Ajax.
1) Laden Sie einen PHP-Wrapper herunter, der API v3.0 unterstützt. Zum jetzigen Zeitpunkt ist in den neuesten MailChimp-Dokumenten, die v3.0 unterstützen, nichts offizielles aufgeführt, aber einige sind auf GitHub aufgeführt, daher habe ich dieses ausgewählt .
2) Erstellen Sie die folgende PHP-Datei store-address.php
mit Ihrem eigenen API-Schlüssel und Ihrer Listen-ID und legen Sie sie ab Schritt 1 im selben Verzeichnis wie den Wrapper ab. Denken Sie daran, die Dokumentation für Ihren Wrapper zu befolgen, aber alle scheinen dem ziemlich ähnlich zu sein.
<?php
include('MailChimp.php');
use \DrewM\MailChimp\MailChimp;
function storeAddress() {
$key = "xxxxxxxxxxxxxxx-us1";
$list_id = "xxxxxx";
$merge_vars = array(
'FNAME' => $_POST['fname'],
'LNAME' => $_POST['lname']
);
$mc = new MailChimp($key);
$result = $mc->post('/lists/'.$list_id.'/members', array(
'email_address' => $_POST['email'],
'merge_fields' => $merge_vars,
'status' => 'pending'
)
);
return json_encode($result);
}
if ($_POST['ajax']) {
echo storeAddress();
} else {
echo 'Method not allowed - please ensure JavaScript is enabled in this browser';
}
3) Erstellen Sie Ihr HTML / CSS / JavaScript (jQuery) -Formular ( Es muss nicht auf einer PHP-Seite sein, und der Besucher wird nie sehen, dass PHP im Hintergrund verwendet wird. )
Die Antwort ist in JSON, daher müssen Sie richtig damit umgehen.
So index.html
sieht meine Datei aus:
<form id="signup" action="index.html" method="get">
First Name: <input type="text" name="fname" id="fname" />
Last Name: <input type="text" name="lname" id="lname" />
email Address (required): <input type="email" name="email" id="email" />
<input type="submit" id="SendButton" name="submit" value="Submit" />
</form>
<div id="message"></div>
<script src="jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#signup').submit(function() {
$("#message").html("Adding your email address...");
$.ajax({
url: 'inc/store-address.php',
type: 'POST',
data: $('#signup').serialize() + '&ajax=true',
success: function(msg) {
var message = $.parseJSON(msg),
result = '';
if (message.status === 'pending') {
result = 'Success! Please click the confirmation link that will be emailed to you shortly.';
} else {
result = 'Error: ' + message.detail;
}
$('#message').html(result);
}
});
return false;
});
});
</script>
MailChimp API Version 1:
( ursprüngliche Antwort )
Nachdem ich eine Weile herumgefummelt hatte, fand ich eine Site, die das PHP-Beispiel mit jQuery verwendete. Daraus konnte ich mit jQuery eine einfache HTML-Seite erstellen, die das grundlegende Anmeldeformular enthielt. Die PHP-Dateien sind im Hintergrund "versteckt", wo der Benutzer sie noch nie sieht. Die jQuery kann weiterhin darauf zugreifen und sie verwenden.
1) Laden Sie hier das PHP 5 jQuery-Beispiel herunter ... ( BEARBEITEN : Links sind tot. Der einzige wichtige Teil ist jedoch der offizielle API-Wrapper für PHP, der HIER verfügbar ist .)
http://apidocs.mailchimp.com/downloads/mcapi-simple-subscribe-jquery.zip
Wenn Sie nur PHP 4 haben, laden Sie einfach Version 1.2 des MCAPI herunter und ersetzen Sie die entsprechende MCAPI.class.php
Datei oben.
http://apidocs.mailchimp.com/downloads/mailchimp-api-class-1-2.zip
2) Befolgen Sie die Anweisungen in der Readme-Datei, indem Sie Ihren API-Schlüssel und Ihre Listen-ID hinzufügen store-address.php
Datei an den richtigen Stellen .
3) Möglicherweise möchten Sie auch den Namen Ihres Benutzers und / oder andere Informationen erfassen. Sie müssen der store-address.php
Datei ein Array mit den entsprechenden Zusammenführungsvariablen hinzufügen .
So store-address.php
sieht meine Datei aus, in der ich auch den Vornamen, den Nachnamen und den E-Mail-Typ erfahre:
<?php
function storeAddress() {
require_once('MCAPI.class.php');
$api = new MCAPI('123456789-us2');
$merge_vars = Array(
'EMAIL' => $_GET['email'],
'FNAME' => $_GET['fname'],
'LNAME' => $_GET['lname']
);
$list_id = "123456a";
if ($api->listSubscribe($list_id, $_GET['email'], $merge_vars , $_GET['emailtype'])) {
return 'Success! Check your inbox or spam folder for a message containing a confirmation link.';
} else {
return '<b>Error:</b> ' . $api->errorMessage;
}
}
if($_GET['ajax']) {
echo storeAddress();
}
4) Erstellen Sie Ihr HTML / CSS / jQuery-Formular. Es ist nicht erforderlich, sich auf einer PHP-Seite zu befinden.
So index.html
sieht meine Datei aus:
<form id="signup" action="index.html" method="get">
First Name: <input type="text" name="fname" id="fname" />
Last Name: <input type="text" name="lname" id="lname" />
email Address (required): <input type="email" name="email" id="email" />
HTML: <input type="radio" name="emailtype" value="html" checked="checked" />
Text: <input type="radio" name="emailtype" value="text" />
<input type="submit" id="SendButton" name="submit" value="Submit" />
</form>
<div id="message"></div>
<script src="jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#signup').submit(function() {
$("#message").html("Adding your email address...");
$.ajax({
url: 'inc/store-address.php',
data: $('#signup').serialize() + '&ajax=true',
success: function(msg) {
$('#message').html(msg);
}
});
return false;
});
});
</script>
Erforderliche Stücke ...
index.html wie oben oder ähnlich aufgebaut. Mit jQuery sind das Erscheinungsbild und die Optionen endlos.
Die Datei store-address.php wurde als Teil von PHP-Beispielen auf der Mailchimp-Site heruntergeladen und mit Ihrem API-SCHLÜSSEL und Ihrer LIST-ID geändert . Sie müssen dem Array Ihre anderen optionalen Felder hinzufügen.
MCAPI.class.php Datei heruntergeladen von Mailchimp Website (Version 1.3 für PHP 5 oder Version 1.2 für PHP 4). Platzieren Sie es im selben Verzeichnis wie Ihre store-address.php, oder Sie müssen den URL-Pfad in store-address.php aktualisieren, damit es gefunden werden kann.