Ich habe versucht, die Mailchimp API in es ist v3. Da ich PHP benutzt habe, hatte ich einige Probleme damit anzufangen, aber jetzt läuft alles gut.Mailchimp api v3: Batch-Abonnement immer ausstehend
Ich versuche, mehrere Abonnenten zu meiner Liste auf einmal hinzuzufügen.
Ich sah dort: https://devs.mailchimp.com/blog/batch-operations-and-put-in-api-v3-0/
und versucht, den folgenden Code:
<?php
$apiKey = "apikey";
$listId = "listid";
$memberId = md5(strtolower("[email protected]"));
$dataCenter = substr($apiKey,strpos($apiKey,'-')+1);
$url = 'https://'. $dataCenter . '.api.mailchimp.com/3.0/lists/' . $listId .'/members';
$batchurl = 'https://'. $dataCenter . '.api.mailchimp.com/3.0/batches';
$filename = "test_csv.csv";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
$user_info = str_getcsv($contents, ";");
$ch = curl_init($batchurl);
curl_setopt($ch, CURLOPT_USERPWD, 'apikey:'.$apiKey);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
$array = array();
for ($i = 1; $user_info[$i]; $i++) {
$array[] = array(
"method" => "PUT",
"path" => 'lists/'.$listId.'members/'.md5(trim($user_info[$i])),
"body" => '{"email_address" => '.trim($user_info[$i]).',"status" => "subscribed"}'
);
}
$bck = '{"operations": '.json_encode($array).'}' ;
curl_setopt($ch, CURLOPT_POSTFIELDS, $bck);
$result = curl_exec($ch);
curl_close($ch);
var_dump($result);
Doch leider dieser Code keine Fehler zurückgibt. Nur:
string(624) "{"id":"af07a55fea","status":"pending","total_operations":0,"finished_operations":0,"errored_operations":0,"submitted_at":"2016-05-09T14:46:21+00:00","completed_at":"","response_body_url":"","_links":[{"rel":"parent","href":"https://us13.api.mailchimp.com/3.0/batches","method":"GET","targetSchema":"https://us13.api.mailchimp.com/schema/3.0/Batches/Collection.json","schema":"https://us13.api.mailchimp.com/schema/3.0/CollectionLinks/Batches.json"},{"rel":"self","href":"https://us13.api.mailchimp.com/3.0/batches/af07a55fea","method":"GET","targetSchema":"https://us13.api.mailchimp.com/schema/3.0/Batches/Instance.json"}]}"
Was ich leider nicht vollständig verstehe, warum steht es aus? Ich habe versucht, Anfragen über die generierte ID zu bekommen, und leider immer "ausstehend" gesagt, egal wie lange ich vorher gewartet habe.
Hat jemand das gleiche Problem festgestellt? Was kann getan werden, damit der obige Code funktioniert?
Vielen Dank im Voraus!
EDIT 1: Korrektur entsprechend der ersten Antwort von TooMuchPete gegeben.
Diese laufen nacheinander, übrigens, wenn Sie also eine Reihe von ihnen gesendet haben, werden sie alle ausstehen, bis sie an der Reihe sind. Wenn Sie nichts von "ausstehend" sehen, sollten Sie sich an den Kundendienst wenden und nachsehen, was los ist. – TooMuchPete
Ich mache eine sehr ähnliche Operation in Knoten und ich laufe auf das gleiche Problem. Wenn Sie bemerken, dass total_operations 0 ist, und ich bin mir nicht sicher warum. Aber ich bekomme das Gleiche. Ich fügte auch den md5-Hash der E-Mail-Adresse nach Mitgliedern hinzu, die keinen Unterschied machten. – mikedklein
Ich denke, die total_operations: 0 bedeutet, dass wir keine Operationen machen dürfen, was die Schwierigkeiten erklären würde, die wir haben, aber dann ist es nur eine Theorie. Bis zu diesem Datum werden meine Operationen auch nicht gestartet. – LamaDelRay