Add subscrber to mailchimp API v3

徘徊边缘 提交于 2019-12-11 04:47:19

问题


I write this function:

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>';

    }

but I got this result (404 error) and I dont know what to do and where I'm wrong:

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
)

What is the problem here? Why I get 404 error? I don't see the error in my code anywhere. How I can solve this issue?

I use Laravel 5.1 Sorry for my English!


回答1:


It looks like it's related to your list ID. I'm not sure if you've replaced your real list ID in the question, but its format should look something like z1593c999e rather than only numbers. The list ID required for the API is different from the one you'd see in the URL when viewing your list in MailChimp.

To find this, you can follow these steps from MailChimp's knowledgebase:

  1. Navigate to the Lists page.
  2. Click the drop-down menu next to the list you want to work with, and choose Settings.
  3. Scroll to find the unique List ID field. The string of letters and numbers is the list ID.

You can also send an API request using the GET method to https://usX.api.mailchimp.com/3.0/lists and find the list ID in the response.



来源:https://stackoverflow.com/questions/47597974/add-subscrber-to-mailchimp-api-v3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!