将subscrber添加到mailchimp API v3

时间:2017-12-01 16:56:05

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

我写这个函数:

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 抱歉我的英文!

1 个答案:

答案 0 :(得分:1)

它看起来与您的列表ID有关。我不确定你是否已经在问题中替换了你的真实列表ID,但它的格式应该类似于z1593c999e,而不仅仅是数字。在MailChimp中查看列表时,API所需的列表ID与您在URL中看到的列表ID不同。

要找到这个,你可以从MailChimp的知识库中follow these steps

  
      
  1. 导航至“列表”页面。
  2.   
  3. 单击要使用的列表旁边的下拉菜单,然后选择“设置”。
  4.   
  5. 滚动查找唯一的列表ID字段。字母和数字字符串是列表ID。
  6.   

您还可以使用GET方法向https://usX.api.mailchimp.com/3.0/lists发送API请求,并在响应中找到列表ID。