Используя оболочку MailChimp API v2 от DrewM, я пытаюсь обновить свой список с помощью пакетной подписки на примерно 700 строк.
Когда я имею дело с 500 строками, у меня нет проблем, но после этого список кажется обновленным, но ничего не возвращается.
Я думал, что нашел ответ из этого аналогичного поста [Mailchimp Batch Subscribe 2.0 возвращает false на 500+ записей (PHP)
но проблема остается
Я также попробовал тайм-аут, как было предложено, (сценарий, кажется, работает около 10 секунд)
<?php
//loop through the recordset and create the batch array
while(!$rscontacts->atEnd()) {
$merge_vars = array(
'FNAME'=> $rscontacts->getColumnVal("FirstName"),
'LNAME'=> $rscontacts->getColumnVal("LastName"),
'CONTACTID'=> $rscontacts->getColumnVal("ContactID"),
'CONTTYPE'=> $rscontacts->getColumnVal("ContactTypeID"),
'ACTIVE'=> $rscontacts->getColumnVal("Active"),
'INMAILING'=> $rscontacts->getColumnVal("InMailing")
);
$batch[] = array(
'email' => array('email' => $rscontacts->getColumnVal("EmailAddress1")),
"email_type" => "html", // optional, for the email type option (html or text)
'merge_vars' => $merge_vars
);
$rscontacts->moveNext();
}
$rscontacts->moveFirst(); //return RS to first record
//print_r($batch);
?>
...
<?php
set_time_limit(0);
$api = 'xxx';
$mcListId = 'xxx';
$MailChimp = new \Drewm\MailChimp(xxx);
$retval = $MailChimp->call("lists/batch-subscribe", array(
"id" => $mcListId,
"batch" => $batch,
"double_optin" => false,
"update_existing" => true,
"replace_interests" => true // optional, flag to determine whether we replace the interest groups with the updated groups provided, or we add the provided groups to the member's interest groups
));
if ($retval === false) {
echo "Mailchimp API returned false";
}
?>
<?php echo $retval ['add_count'].' Records added'; ?><br>
<?php echo $retval ['update_count'].' Records updated'; ?><br>
<?php echo $retval ['error_count'].' Errors Found'; ?><br>
[1]: https://stackoverflow.com/questions/29082925/mailchimp-batch-subscribe-2-0-returns-false-on-500-records-php
Починил это !
В скрипте MailChimp.php есть 2 $ параметра времени ожидания.
Сценарий истекал через 10 секунд, мне нужно было установить для функции вызова более высокое значение — и теперь сценарий (для выполнения которого требуется около 14 секунд) работает нормально
Других решений пока нет …