В настоящее время я использую API MailChimp для PHP, версия 1.3.1 ( http://apidocs.mailchimp.com/api/downloads/#php )
Я создал список в MailChimp и хотел бы динамически добавить:
$objMailChimp->listBatchSubscribe($strMailingListID, ...)
) $objMailChimp->listInterestGroupingAdd($strMailingListID, ...)
) $objMailChimp->listInterestGroupAdd($strMailingListID, ...)
) API ( http://apidocs.mailchimp.com/api/1.3/#listrelated ) несколько неясен о том, как добавить подписчика в группу интересов – есть ли у кого-нибудь идеи?
Начиная с версии 3, «группировки» изменились на «интересы».
Вам нужно узнать идентификатор группы (интереса), которую вы хотите добавить. К сожалению, это невозможно найти нигде на панели управления MailChimp.
Самый простой способ узнать идентификатор «интерес» (а не создать сценарий) – это перейти на игровую площадку MailChimp, а затем, после ввода в свой ключ API, проложить маршрут до …
списки> рассматриваемый список> категории интересов (в раскрывающемся списке под-ресурсов)
тогда…
интересы (в раскрывающемся списке под-ресурсов) для категории интересов
тогда…
Перейдите к интересу и обратитесь к полю 'id', игнорируя другие поля ID
ИЛИ
списки> список, о котором идет речь> члены (в раскрывающемся списке под-ресурсов)
тогда…
load (в раскрывающемся списке действий) для любого участника
или
Создать участников (кнопка)
На странице будут загружены данные участника. Прокрутите вниз, пока не увидите массив / объект интересов. Там вы увидите идентификаторы. Обратите внимание, что они могут быть установлены в true или false.
Вам нужно будет выяснить, какой идентификатор относится к тому, что «группа» / «интерес», перейдя по предыдущему методу или вызову, а затем просмотрев детали участника через панель управления MailChimp.
Поэтому, когда дело доходит до того, что вы делаете POST- вызов (создаете «member»), вам нужно что-то на линии …
{ "email_address":"example@freddiesjokes.com", "status":"subscribed", "interests": { "b8a9d7cbf6": true, "5998e44916": false }, # ADDITIONAL FIELDS, IF REQUIRED... "merge_fields":{ "FNAME": "foo bar", "LNAME": "foo bar", "MERGE3": "foo bar", "MERGE4": "foo bar" } }
Вызов PUT (пример 'member' edit) …
{ "interests": { "b8a9d7cbf6": false, "5998e44916": true } }
Кажется, что вы должны объявить каждый «интерес» и указать, является ли оно истинным или ложным.
Начиная с версии 2.0 API MailChimp, это должно работать:
$merge_vars = array( 'GROUPINGS' => array( array( 'name' => "GROUP CATEGORY #1", // You can use either 'name' or 'id' to identify the group 'groups' => array("GROUP NAME","GROUP NAME") ), array( 'name' => "GROUP CATEGORY #2", 'groups' => array("GROUP NAME") ) ) );
Источник: http://apidocs.mailchimp.com/api/2.0/lists/subscribe.php
Используя баботированную PHP-оболочку ( https://github.com/drewm/mailchimp-api/ ), вы можете отправить ее в MailChimp через списки / подписку или списки / пакетную подписку:
$MailChimp = new MailChimp('API_KEY'); $result = $MailChimp->call('lists/subscribe', array( 'id' => 'LIST ID', 'email' => array('email'=>'trevor@example.com'), 'merge_vars' => $merge_vars ));
Я не мог заставить другие ответы на этой странице работать. Вот свариваемые вары, которые мне пришлось использовать:
$merge_vars = array( 'GROUPINGS' => array( 0 => array( 'id' => "101", //You have to find the number via the API 'groups' => "Interest Name 1, Interest Name 2", ) ) );
Используйте GROUPINGS
merge var:
Установите группы интересов путем группировки. Каждый элемент в этом массиве должен быть массивом, содержащим параметр «groups», который содержит список групп интересов с разделителями-запятыми для добавления. Запятые имена групп интересов должны быть экранированы с обратной косой чертой. т.е. «,» => «\» и либо параметр «id», либо «name», чтобы указать Grouping – get from listInterestGroupings ()
Вот код, который я получил для работы
require_once 'MCAPI.class.php'; require_once 'config.inc.php'; //contains apikey // use this once to find out id of interest group List //$retval = $api->listInterestGroupings($listId); //echo '<pre>'; //print_r($retval); //echo '</pre>'; //die(); $emailAddress = 'info@example.com'; //You have to find the number via the API (id of interest group list) $interestGroupListId = FILLMEIN; $api = new MCAPI($apikey); // Create an array of Interest Groups you want to add the subscriber to. $mergeVars = array( 'GROUPINGS' => array( 0 => array( 'id' => $interestGroupListId, 'groups' => "FILL IN GROUP NAMES", ) ) ); // Then use listUpdateMember to add them $retval = $api->listUpdateMember($listId, $emailAddress, $mergeVars); if ($api->errorCode){ echo "Unable to update member info!\n"; echo "\tCode=".$api->errorCode."\n"; echo "\tMsg=".$api->errorMessage."\n"; } else { echo "Returned: ".$retval."\n"; }
Это вариант ответа Джастинса, но, пробовав все вышеперечисленное, я единственный, с кем я мог бы работать с оберткой MailChimp от DrewM
$merge_vars = array( 'GROUPINGS' => array( 0 => array( 'id' => '[GROUP_LIST_ID]', // need grouping ID 'name' => '[OR_GROUP_LIST_NAME]', // or name instead 'groups' => array( '[GROUP_NAME_1]', '[GROUP_NAME_2]' ) ) ), ); $mc = new MailChimp('[YOUR_MAILCHIMP_API]'); $mc->call( 'lists/subscribe', array( 'id' => '[YOUR_LIST_ID]', // list ID 'email' => array( 'email' => 'someone@something.com'), 'merge_vars' => $merge_vars, 'double_optin' => true, 'update_existing' => true, 'replace_interests' => false, // do you want to add or replace? 'send_welcome' => false, ) );
Если вы не уверены в своем идентификаторе списков групп и хотите его использовать, вы можете позвонить:
$current_groupings = $mc->call( 'lists/interest-groupings', array( 'id' => '[GROUP_LIST_ID]', ) ); var_dump($current_groupings);
Также обратите внимание на необязательный, но очень важный последний параметр listUpdateMember, по умолчанию replace_interests он установлен в true, чтобы он переписывал любую подписку, которую пользователь мог обновить, возможно, в прошлом. Если вы хотите добавить новые, которые не касаются предыдущих, просто передайте новое имя группы, которое вы хотите добавить, и установите replace_interests в значение false.
$api = new MailChimp('API_KEY'); $pArray = array('GROUPINGS'=>array( array('name'=>'GROUP CATEGORY', 'groups'=>'group1,group2'), ) ); if (is_array($pArray)) { $api->listUpdateMember($pListId, $pEmail, $pArray, '', false); }
Пример с использованием оболочки MailChimp от DrewM и сокращенного синтаксиса для массивов (PHP 5.4+). Добавить в группы :
$merge_vars = [ 'GROUPINGS' => array( 0 => [ 'id' => 12345, // need grouping ID 'name' => 'Interests', // or name instead 'groups' => [ 'cars', 'trucks' ] ] ] ]; $mc = new MailChimp('API_KEY'); $mc->call( 'lists/subscribe', [ 'id' => '9876', // list ID 'email' => array[ 'email' => 'example@abc.com' ], 'merge_vars' => $merge_vars, 'double_optin' => true, 'update_existing' => true, 'replace_interests' => false, // do you want to add or replace? 'send_welcome' => false, ] );
Вам нужно сгруппировать «имя» ИЛИ «id», оба они не нужны. Чтобы получить идентификатор группировки, используйте: lists / interest-groupsings