我正在升级到新的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文件夹?我需要使用某种数组构造来指定某种形式的数据吗?
答案 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
”
然后您需要去:
All Contacts
然后在右列中,您会看到“受众群体ID”,其中包含一些奇怪的,毫无意义的解释,例如:
“ 某些插件和集成可能会要求您提供受众ID。通常,这就是他们想要的:abcd1234xxx。”
这就是您需要的“ listID ”!
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包含在正文数据中...