2015-08-21 16 views

Antwort

8

Die Antwort ist ganz einfach - verwenden Offset und Zählung Parameter in URL-Abfrage:

https://us10.api.mailchimp.com/3.0/lists/b5b5fdc2fa/members?offset=150&count=10 

Schließlich fand ich PHP-API-Client für MailChimp API v3: https://github.com/pacely/mailchimp-api-v3

und offizielle Dokumente über Seitenumbruch .. Ich vermisste es vorher :( http://kb.mailchimp.com/api/article/api-3-overview

+1

Gibt es eine Möglichkeit, alle Mitglieder zu ergreifen? Zum Beispiel in WordPress würden Sie sagen, die Zahl bis -1, so etwas? – pocockn

+2

@pocockn Sie können sie in zwei Schritten greifen: 1) [Gesamte Einträge erhalten] (https://us9.api.mailchimp.com/3.0/lists/29e5c010dc/members?fields=total_items) 2) [Alle Mitglieder] (https://us9.api.mailchimp.com/3.0/lists/29e5c010dc/members?count=TOTAL_FROM_PREV_RESPONSE). Lassen Sie mich wissen, wenn Sie eine bessere Lösung finden :) – graceman9

+1

Anzahl scheint bei 1000 maximiert zu sein. Sie müssen also alle Mitglieder in mehreren Aufrufen durchlaufen. – Crewone

1

offset und count ist der offizielle Weg zu den Dokumenten, aber das Problem ist, dass es eine lineare Verlangsamung hat. Es scheint eine n^2 Lösung zu sein, also wenn Sie 20.000 Artikel haben, sind Sie in Schwierigkeiten. Ihre Dokumente http://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/#read-get_lists_list_id_members warnen Sie vor der Verwendung von Offset.

Wenn Sie Szenario erlaubt Ihnen, andere Filter (wie since_last_changed) zu verwenden, dann können Sie es schnell tun. Das Format für Datetime finden Sie unter What is the right syntax for "timeframe" in MailChimp API 3.0.

1

Sie können es nur mit count, so dass eine API-Aufruf an die list root, so dass in der nächsten API-Aufruf Sie die Anzahl Parameter und Sie haben alle Ihre Listenmitglieder.

Ich stieß auf Probleme mit diesem, weil ich eine moderate Liste mit 2600 Mitgliedern hatte und MailChimp einen Fehler warf, aber es arbeitete mit 1500 Menschen.

Also für eine Liste größer als 1500 Mitglieder nutze ich MailChimp export API bare im Verstand, dass dies eingestellt wird, aber ich konnte keine anderen akzeptablen Lösungen finden.

Alternativ für größere Listen (> 1500) konnte man die insgesamt Mitglieder erhalten und dann mehrere api Anrufe an die Member endpoint machen, aber ich mag nicht wirklich, dass :(

Wenn jemand eine bessere Alternative hat, würde ich wirklich gerne zu hören.

1

mit offset und count Parameter korrekt sind, wie in einigen der anderen Antworten erwähnt, aber für große Listen langweilig wird.

eine effizientere Art und Weise, ist ein Client für die MailChimp API zu verwenden. Ich habe mailchimp3 for python verwendet Es ist ziemlich einfach, alle Mitglieder auf Ihrer Liste zu finden, da sie die Seitennummerierung übernimmt. Hier ist, wie Sie es tun würden.

0

Ich stolperte über dieses eine, während ich einen Weg erforschte, alle Listenmitglieder in MC API 3.0 auch zu erhalten. Ich habe bemerkt, dass es einige Kommentare zum API-Timing gab, als ich versuchte, alle Listenmitglieder auf eine Seite zu bringen. Ich bin auch zuerst auf dieses Problem gestoßen, konnte es aber überwinden, indem ich die Felder im Ergebnis durch den Parameter 'Felder' einschränkte. Mein Code ist für einen Massenlöscher gedacht, also brauchte ich nur die ID jedes Mitglieds, um eine Stapellöschanforderung zusammenzustellen. Hier ist, wie meine Anfrage aussieht (Pseudocode) holen:

$total_members = $result['total_items'];//get number of members in list via previous request 
https://usXX.api.mailchimp.com/3.0/lists/foobarx/members?fields=members.id&count=total_members 

Auf diese Weise ich in der Lage bin zu holen mehr als 15.000 Abonnenten auf einer Seite ohne Fehler.

+0

hi, Können Sie Kunden mit dem Batch-Lösch-Prozess löschen, müssen wir rund 100K Spam-E-Mails aus der Mailchimp-Liste löschen. können Sie bitte hier eine Richtlinie angeben – p4pravin