MailChimp API在V3.0 PHP Curl中响应404

时间:2018-06-21 06:10:27

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

我正在使用以下代码向MailChimp中的列表发起成员添加请求。

<?php

error_reporting(-1);
    ini_set('display_errors', 1);

$email = 'test@domain.com';
$first_name = 'name';
$last_name = 'last name';

$api_key = 'xx-us18'; // YOUR API KEY

// server name followed by a dot. 
// We use us13 because us13 is present in API KEY
$server = 'us18.'; 

$list_id = 'xx'; // 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);

echo $result;
?>

但是发生的是响应是404。

{
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: "78a35efa-ef43-471d-9e70-aecdc992d2e6"
}

有人知道我在做什么错吗?该错误的原因可能是什么?

其他信息:API密钥有效,如果我提供了错误的信息,则我遇到另一个错误。 List-id也是如此。 我正在使用MAMP在本地主机上运行此代码。

1 个答案:

答案 0 :(得分:1)

问题是我使用了web_id而不是list_id。 当我更改此设置后,问题已解决。