解释MailChimp API错误消息:找不到资源“Campaign_Collection”

时间:2016-12-06 00:34:25

标签: php mailchimp mailchimp-api-v3.0

我正在升级到新的MailChimp v3 API。

FWIW,我们正在使用DrewM's PHP library

当我尝试create a new campaign时,我从MailChimp收到这个神秘的错误消息:

Array (
  [type] => http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/
  [title] => Resource Not Found
  [status] => 404
  [detail] => The resource 'Campaign_Collection' could not be found.
  [instance] =>
)

网址(http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary)只是部分有用;是的,资源缺失。但什么是Campaign_Collection?这是Mailchimp列表吗?一个Mailchimp文件夹?我需要使用某种数组构造来指定某种形式的数据吗?

3 个答案:

答案 0 :(得分:2)

问题解决了。

如果您收到错误, 404 字段是关键线索,详细信息字段是红色鲱鱼。

如果拼错端点,则会出现这种错误。例如:

$mailer = new MailChimp('****YOUR API KEY****');
$response = $mailer->get('/xyzzy');

// Produces this:
$response = [
     "type" => "http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/",
     "title" => "Resource Not Found",
     "status" => 404,
     "detail" => "The resource 'Xyzzy_Collection' could not be found.",
     "instance" => "",
   ]
>>>

我,我已经离开了一个'关闭广告系列端点。

答案 1 :(得分:1)

也许太晚了,但认为它可能对其他一些人有帮助。 通常,Mailchimp返回“ 找不到所请求的资源。 ”,而不会告诉您是否是由于您的列表ID或方法等引起的。

确保使用正确的列表ID。这是您在网址上看到的。在顶部菜单中,您需要转到 +---+-------+--------+-------+----+--------+ | id|product|location|quarter|cost|quantity| +---+-------+--------+-------+----+--------+ | 1| 12| East| Q1|10.0| 15.0| | 2| 14| East| Q1|20.0| 20.0| | 3| 12| West| Q2|30.0| 5.0| | 4| 13| West| Q2| 7.0| 8.0| | 5| 13| East| Q1| 5.0| 10.0| | 6| 12| null| null|20.0| 10.0| | 7| 13| West| null| 7.0| 8.0| | 8| 12| West| null|20.0| 10.0| +---+-------+--------+-------+----+--------+ 并选择“ Audience

enter image description here

然后您需要去:

All Contacts

enter image description here

然后在右列中,您会看到“受众群体ID”,其中包含一些奇怪的,毫无意义的解释,例如:

某些插件和集成可能会要求您提供受众ID。通常,这就是他们想要的:abcd1234xxx。

这就是您需要的“ listID ”!

enter image description here

PS:如果将其称为“ AudienceID”,则应在API参考上对其进行更新。我认为文档是Audience -> Settings -> Audience Name and defaults ,而不是audienceID

答案 2 :(得分:-1)

$data = [
        'email_address' => (isset($email) ? $email : ''),
        'status' => 'subscribed',
        'status_if_new' => 'subscribed',
        'merge_fields' => [
            'FNAME' => (isset($firstname) ? $firstname : ''),
            'LNAME' => (isset($lastname) ? $lastname : ''),
            'PHONE' => (isset($phone) ? $phone : ''),
        ],
    ];
    $server = explode('-', $token);
    $url = 'https://'.$server[1].'.api.mailchimp.com/3.0/lists/'.$list.'/members/';

$response = wp_remote_post( $url, [
    'method' => 'POST',
    'data_format' => 'body',
    'timeout' => 45,
    'headers' => [

                    'Authorization' => 'apikey '.$token,
                    'Content-Type' => 'application/json; charset=utf-8'
            ],
    'body' => json_encode($data )
    ]
);
if ( is_wp_error( $response ) ) {
   $error_message = $response->get_error_message();
    $return['error'] = "Something went wrong: $error_message";
} else {
    $return['success'] = $response;
}

必须将merge_fields包含在正文数据中...