MailChimp API in TYPO3
Ressourcen
Hier sind alle verfügbaren Ressourcen der MailChimp API gut dokumentiert aufgelistet:
Zu jeder Ressource gibt es genaue Beschreibungen, wie die Anfrage aussieht, was zurück kommt und welche Error Codes auftreten können.
Hat man bereits einen API Key von MailChimp kann man sich hier durch die Anfragen und Aktionen der einzelnen Ressourcen klicken. Es wird immer die Anfrage und die Antwort ausgegeben. So bekommt man ein gutes Gefühl für die API.
Kommunikation mit MailChimp
Die API Calls
In den Ressourcen der API Dokumentation steht der genaue Aufbau für eine Anfrage an eine Ressource.
Für eine erste Version haben wir eine denkbar schlanke Implementierung umgesetzt.
Es gibt eine zentrale generische Methode call, die durch ihre Parameter den Zugriff auf die API von MailChimp ermöglicht.
protected function call($ressource, $type, $params = array(), $url_params = '')
Die einzelnen Anfragen an die MailChimp API sehen dann beispielsweise für die Campaigns (Lies: Newsletter) so aus:
$this->call('campaigns', 'GET', NULL, '?sort_field=send_time&sort_dir=DESC')
- $ressource = campaigns
- $type = GET (Wir wollen eine Liste der Campaigns)
- $params = NULL (Keine weiteren Parameter für die Anfrage nötig)
- $url_params = '?sort_field=send_time&sort_dir=DESC' (Sortiert nach dem Versanddatum)
Anfragen mit CURL
Die MailChimp API verlangt nicht viel, um eine Anfrage zu akzeptieren und das entsprechende Ergebnis zu liefern. Die Übertragung erfolgt unverschlüsselt.
CURLOPT_HTTPHEADER: 'Content-Type: application/json', 'Authorization: login ' . $this->apikey (login kann hier irgendwas sein)
CURLOPT_USERAGENT: Hier solltet ihr etwas angeben, damit MailChimp eure Integration in den Logs identifizieren kann.
CURLOPT_CUSTOMREQUEST: Hier kommt entweder POST oder GET rein, je nachdem was ihr für eine Anfrage Stellt.
CURLOPT_POSTFIELDS: Hier übergebt ihr die eventuell erforderlichen Parameter als JSON codiertes Array (json_encode(array(...)))
Ausblick
Aufbauend auf dieser Implementierung kann man nun alle Ressourcen und Bequemlichkeitsfunktionen auf der MailChimp API definieren.
Denkbare Erweiterungen sind eine Abbildung der API Ressourcen auf ein Extbase Domain Model mit automatischem Caching und später vielleicht sogar einer kopmletten Synchronisation von TYPO3 Daten und MailChimp Daten.
Kommen Webhooks und Automations von MailChimp ins Spiel bietet TYPO3 eine ausgezeichnete Integration von MailChimp