解释 MailChimp API 错误消息:找不到资源 'Campaign_Collection'
Explain a MailChimp API error message: The resource 'Campaign_Collection' could not be found
我正在将我们升级到新的 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] =>
)
URL (http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary) 仅部分有用;是的,缺少资源。但是什么是Campaign_Collection?它是 Mailchimp 列表吗? Mailchimp 文件夹?我需要使用某种数组构造来指定某种形式的数据吗?
问题已解决。
如果报错,404字段是关键线索,detail字段是转移注意力
如果您拼错端点,就会出现这种错误。例如:
$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" => "",
]
>>>
我,我在 Campaigns 端点上留下了 's'。
$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 归档到正文数据中...
也许它太晚了,但我认为它可能对其他人有所帮助。
通常 Mailchimp returns “找不到请求的资源。” 没有告诉它是否是由于您的列表 ID 或方法等..
确保您使用的列表 ID 正确。它 不是 您在 URL 上看到的那个。从顶部菜单,您需要转到 Audience
和 select “All Contacts
”
那么你需要去:
Audience -> Settings -> Audience Name and defaults
然后在右栏你会看到“Audience ID”和一些奇怪的、毫无意义的解释:
"某些插件和集成可能会请求您的受众 ID。通常,这就是他们想要的:abcd1234xxx。"
这就是您需要的“listID”!
PS:如果它被称为“AudienceID”,那么它应该在 API Ref 上更新。我认为文档为 audienceID
,而不是 listID
。
我正在将我们升级到新的 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] =>
)
URL (http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary) 仅部分有用;是的,缺少资源。但是什么是Campaign_Collection?它是 Mailchimp 列表吗? Mailchimp 文件夹?我需要使用某种数组构造来指定某种形式的数据吗?
问题已解决。
如果报错,404字段是关键线索,detail字段是转移注意力
如果您拼错端点,就会出现这种错误。例如:
$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" => "",
]
>>>
我,我在 Campaigns 端点上留下了 's'。
$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 归档到正文数据中...
也许它太晚了,但我认为它可能对其他人有所帮助。 通常 Mailchimp returns “找不到请求的资源。” 没有告诉它是否是由于您的列表 ID 或方法等..
确保您使用的列表 ID 正确。它 不是 您在 URL 上看到的那个。从顶部菜单,您需要转到 Audience
和 select “All Contacts
”
那么你需要去:
Audience -> Settings -> Audience Name and defaults
然后在右栏你会看到“Audience ID”和一些奇怪的、毫无意义的解释:
"某些插件和集成可能会请求您的受众 ID。通常,这就是他们想要的:abcd1234xxx。"
这就是您需要的“listID”!
PS:如果它被称为“AudienceID”,那么它应该在 API Ref 上更新。我认为文档为 audienceID
,而不是 listID
。