MailChimp API 3.0批量更新 - 始终待定,total_operations:0

时间:2016-07-07 18:09:31

标签: php mailchimp

尝试更新一批电子邮件。我想我已尝试过各种方法,但我使用DrewM's MailChimp wrapper仅返回以下$result内容:

Array ( [id] => 1234abcd [status] => pending [total_operations] => 0 [finished_operations] => 0

等等。没有错误,但没有操作!

基本上,我的代码看起来像这样,其中$emails将所有电子邮件存储在一个数组中。

include("MailChimp.php");
include("Batch.php");

$list_id = "1234abcd";

use \DrewM\MailChimp\MailChimp;
use \DrewM\MailChimp\Batch;
$apiKey = 'aslkjf84983hg84938h89gd-us13';

if(!isset($emails)){ // If not sending bulk requests
    $MailChimp = new MailChimp($apiKey);
    $subscriber_hash = $MailChimp->subscriberHash($email);
    $result = $MailChimp->patch("lists/$list_id/members/$subscriber_hash",
        array(
            'status' => 'subscribed',
        )
    );

/* SENDING BATCH OF EMAILS */
} else if($emails){
    $MailChimp = new MailChimp($apiKey);
    $Batch     = $MailChimp->new_batch();
    $i = 1;
    foreach($emails as &$value){
        $Batch->post("op".$i, "lists/$list_id/members", [
            'email_address' => $value,
            'status'        => 'subscribed',
        ]);
        $i++;
    }
    $result = $Batch->execute(); // Send the request (not working I guess)
    $MailChimp->new_batch($batch_id); // Now get results
    $result = $Batch->check_status();
    print_r($result);
}

如果有人能看到我没看到的东西,我将非常感激!

1 个答案:

答案 0 :(得分:1)

问题解决了。在与MailChimp的一位代表交谈后,他帮助找到了两个主要问题。

在处理已有的电子邮件时,他说使用POST,而不是使用PUT方法。 POST最适合用于添加电子邮件,而PUT可以添加和更新电子邮件。

所以,改变

$Batch->post

$Batch->put

其次,在成功发送请求并在$result中收到错误后,他发现这些错误是405错误,并告诉我将md5哈希添加到我的电子邮件中。

所以,改变

$Batch->post("op".$i, "lists/$list_id/members", [ ...

$subscriber_hash = $MailChimp->subscriberHash($value);
$Batch->put("op$i", "lists/$list_id/members/$subscriber_hash", [ ...

他们给我发了一条MailChimp长袜作为一项好运动: - )

VENI。 VIDI。 VICI。