MailChimp API PHP-добавить в группу интересов
В настоящее время я использую MailChimp API для 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) несколько неясно, как добавить подписчика в группу интересов - у кого-нибудь есть идеи?
8 ответов
для MailChimp API v3
по состоянию на v3, "группировки" изменились на "интересы".
вы должны узнать идентификатор группы (интереса), к которой вы хотите добавить. К сожалению, это не может быть найдено нигде на панели мониторинга MailChimp.
самый простой способ узнать идентификатор "интереса" (а не создавать скрипт) - перейти к площадка MailChimp а затем, после ввода ключа API, маршрут к...
списки > список в > интерес-категории (в суб-ресурсов выпадающий)
затем...
интересы (в раскрывающемся списке вложенные ресурсы) для категории интересов
затем...
нажмите на интерес и обратитесь к полю "id", игнорируя другие поля ID
или
списки > список in question > members (в раскрывающемся списке вложенные ресурсы)
затем...
загрузить (в раскрывающемся списке действия) для любого члена
или
создать участников (кнопка)
страница загрузки данных. Прокрутите вниз, пока не увидите массив/объект "интересы". Там вы увидите идентификаторы. Заметьте, они могут быть установлены в true или false.
вам придется выяснить, какой ID относится к тому, что "группа" / "интерес", перейдя о предыдущем методе или сделав вызов, а затем глядя на детали участника через панель мониторинга MailChimp.
поэтому, когда дело доходит до фактического осуществления в должности вызов ('member' create), вы хотели бы что-то на линиях...
{
"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"
}
}
A поставить вызов ('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 barebones (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
));
Я не мог получить другие ответы на этой странице для работы. Вот слияние 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
объединить var:
установить группы интересов путем группировки. Каждый элемент в этом массиве должен быть массив, содержащий параметр" groups", содержащий запятую список групп интересов для добавления с разделителями. Запятые в группе интересов имена должны быть экранированы. т. е., "," => "\," И параметр" id "или" name " для указания группировки-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";
}
Это вариант ответа Justins, но, попробовав все вышеизложенное, это единственный, который я мог получить для работы с оболочкой DrewM MailChimp
$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,
)
);
Если вы не уверены в ID списков групп и хотите использовать его, вы можете позвонить:
$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);
}
пример использования DrewM это фантик в MailChimp и синтаксис стенографии для массивов (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,
]
);
вам нужна группировка 'name'или 'id', оба не нужны. Чтобы получить идентификатор группировки, используйте:списки / группы интересов