我写这个函数:
public function mailchimp() {
$email = 'testing123@test.com';
$first_name = 'Test';
$last_name = 'Test';
$api_key = 'dfrgergredgdfgdfgdfgdfg-us9'; // YOUR API KEY
// server name followed by a dot.
// We use us13 because us13 is present in API KEY
$server = 'us9.';
$list_id = '718943'; // YOUR LIST ID
$auth = base64_encode( 'user:'.$api_key );
$data = array(
'apikey' => $api_key,
'email_address' => $email,
'status' => 'subscribed',
'merge_fields' => array(
'FNAME' => $first_name,
'LNAME' => $last_name
)
);
$json_data = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://'.$server.'api.mailchimp.com/3.0/lists/'.$list_id.'/members/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json',
'Authorization: Basic '.$auth));
curl_setopt($ch, CURLOPT_USERAGENT, 'PHP-MCAPI/2.0');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
$result = curl_exec($ch);
$result_obj = json_decode($result);
// printing the result obtained
echo $result_obj->status;
echo '<br>';
echo '<pre>'; print_r($result_obj); echo '</pre>';
}
但是我得到了这个结果(404错误),我不知道该做什么以及我错在哪里:
404
stdClass Object
(
[type] => http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/
[title] => Resource Not Found
[status] => 404
[detail] => The requested resource could not be found.
[instance] => 637c9154-9999-48d2-952f-e994b737a9b7
)
这是什么问题?为什么我会收到404错误?我在任何地方的代码中都没有看到错误。我怎么能解决这个问题?
我使用的是Laravel 5.1 抱歉我的英文!
答案 0 :(得分:1)
它看起来与您的列表ID有关。我不确定你是否已经在问题中替换了你的真实列表ID,但它的格式应该类似于z1593c999e
,而不仅仅是数字。在MailChimp中查看列表时,API所需的列表ID与您在URL中看到的列表ID不同。
要找到这个,你可以从MailChimp的知识库中follow these steps:
- 导航至“列表”页面。
- 单击要使用的列表旁边的下拉菜单,然后选择“设置”。
- 滚动查找唯一的列表ID字段。字母和数字字符串是列表ID。
醇>
您还可以使用GET方法向https://usX.api.mailchimp.com/3.0/lists
发送API请求,并在响应中找到列表ID。