Я пытаюсь добавить пользователей в список, который я создал в Mailchimp, но я не могу найти примеры кода нигде. Я попытался выяснить, как использовать API, но я очень люблю "Посмотри на пример и узнай" человека.
Я пробовал использовать версию 2 API, но ничего не работает, несмотря на работу с примерами в сети, и Mailchimp говорит о более ранних версиях своего API на своем веб-сайте:
Версии 2.0 и ранее устарели. Для этих версий будут доступны только минимальные исправления ошибок, исправления безопасности.
ОБНОВЛЕНИЕ 1. Я сделал несколько дальнейших исследований, основанных на TooMuchPete answer в отношении ссылки на "Управление подписчиками" и изменил код, который я нашел здесь, но это не сработает, потому что функция http_build_query() doesn ' t обрабатывать вложенные массивы. Я не уверен, как иметь дело с частью merge_fields добавления подписчика. Мой текущий код ниже:
$postdata = http_build_query(
array(
'apikey' => $apikey,
'email_address' => $email,
'status' => 'subscribed',
'merge_fields' => array(
'FNAME' => $name
)
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://us2.api.mailchimp.com/3.0/lists/<list_id>/members/', false, $context);
var_dump($result);
die('Mailchimp executed');
ОБНОВЛЕНИЕ 2: теперь я прибегал к использованию curl, и мне удалось получить что-то почти работающее. Данные отправляются Mailchimp, но я получаю сообщение об ошибке . В ваш запрос не включен ключ API. Я предполагаю, что мне нужно пройти аутентификацию, как упомянуто здесь. Я попытался добавить его в заголовок http, который не работал. Смотрите мой код ниже:
$apikey = '<api_key>';
$auth = base64_encode( 'user:'.$apikey );
$data = array(
'apikey' => $apikey,
'email_address' => $email,
'status' => 'subscribed',
'merge_fields' => array(
'FNAME' => $name
)
);
$json_data = json_encode($data);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://us2.api.mailchimp.com/3.0/lists/<list_id>/members/');
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json/r/n
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);
var_dump($result);
die('Mailchimp executed');