Dies ist eine PHP-Bibliothek für die Interaktion mit Version 3.0 der MailChimp-API
Diese Bibliothek setzt ein grundlegendes Verständnis der MailChimp-Anwendung und der damit verbundenen Funktionen voraus.
Für Composer-Ausführung:
composer require jhut89/mailchimp3php
Alternativ können Sie Ihrer Projekt composer.json
eine Anforderungszeile für das Paket jhut89/mailchimp3php
hinzufügen.
Führen Sie dann composer update
aus und fügen Sie den Composer-Autoloader zu Ihrem Projekt hinzu mit:
require " vendor/autoload.php " ;
Anschließend können Sie eine use-Anweisung verwenden, um die Mailchimp-Klasse einzubinden:
use MailchimpAPI Mailchimp ;
$ mailchimp = new Mailchimp ( ' 123abc123abc123abc123abc-us0 ' );
Zur Instanziierung benötigen Sie eine neue Instanz der Mailchimp
-Klasse mit dem API-Schlüssel Ihres MailChimp-Kontos als einzigem Argument.
Wenn Sie OAuth verwenden, um ein Zugriffstoken zu erhalten, kann diese Bibliothek den „Handshake“ für Sie übernehmen.
Sie müssen den Benutzer zunächst an Ihre Anwendungen authorize_uri
senden. Sie können diese URL erhalten, indem Sie Mailchimp::getAuthUrl()
statisch aufrufen:
$ client_id = ' 12345676543 ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
Mailchimp:: getAuthUrl ( $ client_id , $ redirect_url );
Wenn Sie zusammen mit Ihrer Anfrage Statusinformationen übergeben müssen, damit die Rückrufantwort korrekt weitergeleitet werden kann, können Sie optional einen Statusparameter einfügen:
$ client_id = ' 12345676543 ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
// state information encoded into a string to be included in the URL, for example data encoded in a JWT token
$ state = ' eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c ' ;
Mailchimp:: getAuthUrl ( $ client_id , $ redirect_url , $ state );
Von dort aus gibt der Benutzer seinen Benutzernamen und sein Passwort ein, um Ihren Antrag zu genehmigen, und wird zusammen mit einem code
zu der von Ihnen festgelegten redirect_uri
weitergeleitet.
Mit diesem code
können Sie nun ein Zugriffstoken von Mailchimp anfordern. Dazu müssen Sie die Methode Mailchimp::oauthExchange()
statisch wie folgt aufrufen:
$ code = ' abc123abc123abc123abc123 ' ;
$ client_id = ' 12345676543 ' ;
$ client_secret = ' 789xyz789xyz789xyz789xyz ' ;
$ redirect_url = ' https://www.some-domain.com/callback_file.php ' ;
Mailchimp:: oauthExchange ( $ code , $ client_id , $ client_secret , $ redirect_url );
Wenn der Handshake erfolgreich ist, gibt diese Methode eine Zeichenfolge mit Ihrem API-Schlüssel wie folgt zurück: 123abc123abc123abc123abc123abc-us0
. Dieser API-Schlüssel kann nun wie oben beschrieben zum Instanziieren Ihrer Mailchimp
Klasse verwendet werden.
Sobald Sie die Mailchimp
-Klasse instanziiert haben, können Sie mit der Erstellung von Anfragen beginnen. Die Erstellung von Anfragen erfolgt durch die „Verkettung“ von Methoden mit der $mailchimp
-Instanz. In den meisten Fällen endet diese „Kette“ mit dem HTTP-Verb für Ihre Anfrage.
Ein Beispiel für das Abrufen einer Listensammlung:
$ mailchimp
-> lists ()
-> get ();
Das Abrufen einer Instanz kann erreicht werden, indem der entsprechenden Methode ein eindeutiger Bezeichner für die gewünschte Instanz als Argument übergeben wird. Wenn ich beispielsweise eine Listeninstanz aus dem obigen Beispiel abrufen möchte, würde ich einfach eine list_id
als einziges Argument für die Methode lists()
übergeben. So was:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> get ();
Die für jede Position in der Kette verfügbaren Methoden hängen davon ab, was die vorherige Methode zurückgibt. Wenn ich beispielsweise Abonnenten aus einer Liste in meinem Konto abrufen möchte, würde ich Folgendes tun:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> get ();
Beachten Sie, dass ich der Methode lists()
eine list_id
bereitgestellt habe, da es keine Möglichkeit gäbe, eine Liste von Abonnenten aus einer Listensammlung abzurufen. Die obige Anfrage gibt jedoch nur 10 Abonnenteninstanzen aus der Mitgliedersammlung zurück. Dies liegt daran, dass die API von MailChimp eine Paginierung (HIER dokumentiert) verwendet, die standardmäßig auf count=10
und offset=0
eingestellt ist. Mit dieser Bibliothek können Sie Abfragezeichenfolgenparameter ändern, indem Sie sie als Argument an die GET()
Methode übergeben. Wir tun dies, indem wir ein Array von Schlüssel-Wert-Paaren bereitstellen, wobei die Schlüssel die Abfrageparameter sind, die Sie bereitstellen/ändern möchten, und deren Wert der Wert des Parameters ist. Wenn ich beispielsweise die zweiten 100 Abonnenten aus meiner Liste abrufen möchte, könnte ich Folgendes tun:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> get ([
" count " => " 100 " ,
" offset " => " 100 "
]);
Dies wäre gleichbedeutend mit einer Get-Anfrage gegen:
Https://us0.api.mailchimp.com/3.0/lists/1a2b3c4d/members?count=100&offset=100
Wenn wir noch etwas weiter gehen, können wir ein einzelnes Listenmitglied abrufen, indem wir der Methode members()
den members_hash
(MD5-Hash einer Adresse in Kleinbuchstaben) übergeben. So was:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' 8bdbf060209f35b52087992a3cbdf4d7 ' )
-> get ();
Anstatt einen MD5-Hash als Bezeichner für die Funktion members()
bereitzustellen, können Sie alternativ auch die E-Mail-Adresse eines Kontakts als Zeichenfolge angeben, und diese Bibliothek übernimmt das Hashing für Sie. So was:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' [email protected] ' )
-> get ();
Ausführliche Informationen
GET
Anfragen finden Sie hier: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Get-Requests
Die Möglichkeit, Daten von Ihrem Konto abzurufen, ist zwar großartig, wir müssen aber auch in der Lage sein, neue Daten zu veröffentlichen. Dies kann durch den Aufruf der POST()
Methode am Ende einer Kette erfolgen. Das Abonnieren einer Adresse in einer Liste würde beispielsweise so aussehen:
$ post_params = [
' email_address ' => ' [email protected] ' ,
' status ' => ' subscribed '
];
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> post ( $ post_params );
In diesem Fall würde ich members()
keinen Bezeichner zur Verfügung stellen, da ich in seiner Sammlung posten möchte. Beachten Sie außerdem, dass es sich bei den Post-Daten um ein Array von Schlüssel-Wert-Paaren handelt, die darstellen, welche Parameter ich an die MailChimp-API übergeben möchte. Stellen Sie sicher, dass Sie alle erforderlichen Felder für den Endpunkt angeben, an den Sie posten. Sehen Sie in der Dokumentation von MailChimp nach, welche Parameter erforderlich sind. Nicht erforderliche Parameter können einfach zu den Beitragsdaten hinzugefügt werden und MailChimp ignoriert alle unbrauchbaren Parameter. Zur Veranschaulichung sehen Sie hier ein Beispiel für das Hinzufügen eines Abonnenten zu einer Liste mit einigen nicht erforderlichen Parametern:
$ merge_values = [
" FNAME " => " John " ,
" LNAME " => " Doe "
];
$ post_params = [
" email_address " => " [email protected] " ,
" status " => " subscribed " ,
" email_type " => " html " ,
" merge_fields " => $ merge_values
]
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ()
-> post ( $ post_params );
Ausführliche Informationen
POST
Anfragen finden Sie hier: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Post-Requests
Diese Bibliothek verarbeitet PUT- und PATCH-Anfragen ähnlich wie POST-Anfragen. Das bedeutet, dass PUT()
und PATCH()
beide ein Array von Schlüssel-Wert-Paaren akzeptieren, die die Daten darstellen, die Sie ändern/an MailChimp bereitstellen möchten. Wenn ich beispielsweise den Abonnenten, den wir oben abonniert haben, so anpassen würde, dass er einen neuen Vornamen hat, würde das so aussehen.
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' a1167f5be2df7113beb69c95ebcdb2fd ' )
-> patch ([
" merge_fields " => [ " FNAME " => " Jane " ]
]);
Ausführliche Informationen zu
PATCH
undPUT
Anfragen finden Sie hier: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Patch-&-Put-Requests
Das Löschen eines Datensatzes aus MailChimp erfolgt mit der Methode DELETE()
und ist ähnlich wie GET-Anfragen aufgebaut. Wenn ich den oben genannten Abonnenten löschen wollte, würde ich Folgendes tun:
$ mailchimp
-> lists ( ' 1a2b3c4d ' )
-> members ( ' a1167f5be2df7113beb69c95ebcdb2fd ' )
-> delete ();
Ausführliche Informationen zu
DELETE
Anfragen finden Sie hier: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Delete-Requests
Nach http-Verben benannte Methoden wie get()
, post()
, patch()
, put()
oder delete()
starten eine Over-the-Wire-Anfrage an die API von MailChimp. Bei erfolgreicher Anfrage geben diese Methoden eine Instanz einer MailchimpResponse
zurück. Ich empfehle Ihnen, sich mit dieser Klasse vertraut zu machen, da es eine Reihe von Modifikatoren und Gettern für verschiedene Teile einer Antwort gibt.
Es gibt eine Reihe von Gettern, die wir verwenden können, um mit Teilen unserer MailchimpResponse
Instanz zu interagieren. Einige der am häufigsten verwendeten sind:
$ response -> deserialize (); // returns a deserialized (to php object) resource returned by API
$ response -> getHttpCode (); // returns an integer representation of the HTTP response code
$ response -> getHeaders (); // returns response headers as an array of key => value pairs
$ response -> getBody (); // return the raw text body of the response
Wenn ich beispielsweise einen API-Schlüssel besitze, aber die mit seinem Konto verknüpfte Kontakt-E-Mail-Adresse haben möchte:
$ mailchimp = new Mailchimp ( ' 123abc123abc123abc123abc-us0 ' );
$ account = $ mailchimp
-> account ()
-> get ()
$ contact_email = $ account
-> deserialize ()
->email
print $ contact_email ; // outputs something like "[email protected]"
Wie Sie mit Antworten im Detail arbeiten, können Sie hier nachlesen: https://github.com/Jhut89/Mailchimp-API-3.0-PHP/wiki/Handling-A-Response
mailchimp()
|
|----account()
|
|----apps()
|
|----automations()
| |
| |----removedSubscribers()
| |----emails()
| |
| |---queue()*
| |---pauseAll()*
| |---startAll()*
|
|----batches()
|
|----batchWebhooks()
|
|----campaignFolders()
|
|----campaigns()
| |
| |----cancel()*
| |----pause()*
| |----replicate()*
| |----resume()*
| |----scedule()*
| |----send()*
| |----test()*
| |----unschedule()*
| |----checklist()
| |----feedback()
| |----content()
|
|----connectedSites()
| |
| |----verifyScriptInstallation()*
|
|----conversations()
| |
| |----messages()
|
|----ecommStores()
| |
| |----customers()
| |----products()
| | |
| | |----variants()
| | |----images()
| |
| |----promoRules()
| | |
| | |----promoCodes()
| |
| |----orders()
| | |
| | |----lines()
| |
| |----carts()
| |
| |----lines()
|
|----facebookAds()
|
|----fileManagerFiles()
|
|----fileManagerFolders()
|
|----googleAds()
|
|----landingPages()
| |
| |----publish()*
| |----unpublish()*
| |----content()
|
|----lists()
| |
| |----batchSubscribe()*
| |----webhooks()
| |----signupForms()
| |----mergeFields()
| |----growthHistory()
| |----clients()
| |----activity()
| |----abuseReports()
| |----segments()
| | |
| | |----batch()*
| | |----members()
| |
| |----members()
| | |
| | |---notes()
| | |---goals()
| | |---activity()
| | |---tags()
| |
| |----interestCategories()
| |
| |----interests()
|
|----ping()
|
|----reports()
| |
| |----unsubscribes()
| |----subReports()
| |----sentTo()
| |----locations()
| |----emailActivity()
| |----googleAnalytics()
| |----openDetails()
| |----eepurl()
| |----domainPerformance()
| |----advice()
| |----abuse()
| |----clickReports()
| |
| |----members()
|
|----searchCampaigns()
|
|----searchMembers()
|
|----templateFolders()
|
|----templates()
| |
| |----defaultContent()
|
|----verifiedDomains()
|
|----verify()
*Bitte lesen Sie in der API-Dokumentation von MailChimp nach, welche Verben wo angebracht sind.
** Mit einem *
gekennzeichnete Methoden stellen eine Netzwerkanfrage
**Bitte achten Sie auf Aktualisierungen und nutzen Sie die Fork- oder Pull-Anfrage. Weitere Informationen zum Mitwirken finden Sie im Wiki.