Привлечь новых подписчиков из нашей CRM в MailChimp было легко, но сейчас мне нужно получить одну запись клиента, основанную только на его адресе электронной почты. и извлеките их MailChimp ID из API MailChimp.
Документация MailChimp API 3.0 содержит ограниченные примеры использования фильтров для вызовов GET. Я думаю, что было бы возможно отфильтровать результаты без извлечения всего списка участников, что сейчас и делает скрипт, но мне нужна только одна запись клиента, а не весь список, в противном случае я получаю всю строку JSON каждого члена из списка, закодируйте эту массивную строку в массив, затем мне нужно перебрать массив JSON, чтобы найти запись с соответствующим адресом электронной почты, что мне кажется очень неэффективным. Я ДОЛЖЕН пропустить то, что нелегко найти в документах MailChimp API 3.0, нет ?!
Я использую библиотеку PHP, но это не имеет значения, мне просто нужно знать, как создать вызов API — правильный URL (могу ли я добавить с ?email_address=EMAIL_TO_FILTER
попробовал, но не сработало) и структура массива JSON. У меня есть успешное соединение с API MailChimp и я создал mailChimpApiRequest()
метод вроде так:
function mailChimpApiRequest($method='POST', $url, $postFields = null){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
$headerArr=array( 'Authorization: ' . $this->apikey);
if($method!='POST' && !empty($method)) {
//Not needed: $headerArr[] = 'X-HTTP-Method-Override: ' . $method;
}
curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, $method );
curl_setopt($ch, CURLOPT_HTTPHEADER,$headerArr );
curl_setopt($ch, CURLOPT_POST, true);
if ($postFields) {
if ($method!=''){ $postFields['method']=$method;}
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postFields));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
}
$curl_response = curl_exec($ch);
curl_close($ch);
return $curl_response;
}
Может кто-нибудь помочь мне понять, что $url
а также $postFields
массив для передачи на это mailChimpApiRequest()
метод выше?
Просто добавьте URL с MD5 адреса электронной почты в нижнем регистре. Слишком просто, я пропустил это в документах MailChimp API.
Вы поняли это, Аарон … надеюсь, это поможет другим, кто столкнется с той же проблемой:
http://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/#read-get_lists_list_id_members_subscriber_hash
Если вы не можете получить по этому URL, вот сводка:
использовать HTTP GET
запрос к URL /lists/{list_id}/members/{subscriber_hash}
с subscriber_hash
являющийся хешем MD5 строчной версии адреса электронной почты участника списка.