Ich verwende mailchimp3 in Python. Ich schaffte es Batch-Einfügung von Benutzern zu machen mit dieser Funktion:Wie kann ich Listenmitglieder mit Mailchimp3 in Python abmelden/löschen?
client = MailChimp(USERNAME, APIKEY)
def fill_list(list_id, subscribers_data):
data = {'operations': create_subscriptions_data(list_id, subscribers_data)}
client.batches.create(data)
def create_subscriptions_data(list_id, users_data):
return [{'method': 'PUT',
'path': 'lists/{}/members/{}'.format(list_id, str(md5(user['email_address'].encode('utf-8')))),
'body': json.dumps(user)} for user in users_data]
Hier ist, wie ein Benutzer dict wie folgt aussieht:
{"email_address": "[email protected]", "status": "subscribed"}
Dann wollte ich ähnliche Methode verwenden Liste der Benutzer abmelden. Um das zu erreichen, habe ich versucht, die gleiche Logik zu verwenden, nur um die Benutzerobjekte zu ändern. Jetzt habe ich dieses Benutzerformat verwendet:
{"email_address": "[email protected]", "status": "unsubscribed"}
Es aktualisiert den Subskriptionsstatus nicht. Wenn ich alle Benutzer manuell gelöscht habe (über die Webschnittstelle) und den gleichen Befehl ausprobiert habe, habe ich erfolgreich Benutzer mit "status" erstellt: "abgemeldet". Ich frage mich, warum dieser Ansatz den Status nicht ändern kann? Ich habe auch versucht, POST anstelle von PUT zu verwenden, aber es hat nicht funktioniert. Irgendeine Idee, was kann das Problem sein?
Ich habe diese Referenz https://devs.mailchimp.com/blog/batch-operations-and-put-in-api-v3-0/ und es erwähnt, dass dieser Ansatz auch für Updates gut funktionieren sollte.
Vielen Dank im Voraus!