MailChimp API PHP - Добавить в группу интересов


В настоящее время я использую API MailChimp для PHP версии 1.3.1 (http://apidocs.mailchimp.com/api/downloads/#php)

Я настроил список в MailChimp и хотел бы динамически добавлять:

  1. Подписчики в списке (готово: $objMailChimp->listBatchSubscribe($strMailingListID, ...))
  2. Группировки по интересам (выполнено: $objMailChimp->listInterestGroupingAdd($strMailingListID, ...))
  3. Группы интересов в эти группы (сделано: $objMailChimp->listInterestGroupAdd($strMailingListID, ...))
  4. Подписчики, назначенные соответствующим группам (не выполнено)

API-интерфейс (http://apidocs.mailchimp.com/api/1.3/#listrelated ) несколько неясно, как добавить подписчика в группу по интересам - у кого-нибудь здесь есть какие-либо идеи?

Author: ekad, 2012-01-06

8 answers

Для MailChimp API v3

Начиная с версии 3, "группировки" изменились на "интересы".

Вам необходимо узнать идентификатор группы (интереса), в которую вы хотите добавить. К сожалению, это невозможно найти нигде на панели мониторинга MailChimp.

Самый простой способ узнать идентификатор "интереса" (вместо создания скрипта) - это перейти на игровую площадку MailChimp, а затем, после ввода вашего ключа API, направиться к...

Списки> рассматриваемый список > категории интересов (в раскрывающемся списке вложенные ресурсы)

Тогда...

Интересы (в раскрывающемся списке вложенные ресурсы) для категории интересов

Тогда...

Перейдите к интересующему объекту и обратитесь к полю "идентификатор", игнорируя другие поля идентификаторов

ИЛИ

Списки > соответствующий список > участники (в раскрывающемся списке вложенных ресурсов)

Тогда...

Загрузить (в раскрывающемся списке действия) для любого участника

Или

Создать участников (кнопка)

На странице будут загружены данные участника. Прокрутите вниз, пока не увидите массив/объект "интересы". Там вы увидите идентификаторы. Обратите внимание, что они могут быть установлены в значение true или false.

Вам нужно будет выяснить, какой идентификатор относится к какой "группе"/"интересам", выполнив предыдущий метод или позвонив, а затем просмотрев данные участника через свой Панель управления MailChimp.


Поэтому, когда дело доходит до фактического выполнения ПОСТА вызова (создание "участника"), вам понадобится что-то вроде...

{
  "email_address":"[email protected]",
  "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"
  }
}

Пример ПОМЕСТИТЬ вызов (редактирование "участника")...

{
  "interests": {
    "b8a9d7cbf6": false,
    "5998e44916": true
  }
}

Похоже, что вы должны заявить о каждом "интересе" и указать, является ли он истинным или ложным.

 4
Author: Crimbo, 2017-03-07 11:49:31

Начиная с версии 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'=>'[email protected]'),
      'merge_vars'        => $merge_vars
));
 21
Author: Trevor Gehman, 2013-09-12 18:28:47

Я не смог заставить работать другие ответы на этой странице. Вот параметры слияния, которые мне пришлось использовать:

$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",
        )
    )
);
 8
Author: David, 2012-11-02 21:55:34

Использовать GROUPINGS объединить var:

Задайте группы интересов путем группировки. Каждый элемент в этом массиве должен быть массивом, содержащим параметр "группы", который содержит запятую разделенный список групп интересов для добавления. Запятые в названиях групп интересов должны быть экранированы обратной косой чертой. т.е., "," => "\," и либо параметр "идентификатор", либо "имя" для указания группировки - получить из Список групп интересов()

 2
Author: shybovycha, 2012-01-06 17:24:41

Вот код, с которым я должен работать

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 = '[email protected]';
//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";
}
 2
Author: Urs, 2013-06-18 12:36:25

Это вариант ответа Джастина, но, перепробовав все вышеперечисленное, это единственное, что я смог заставить работать с оболочкой 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' => '[email protected]'),
            '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);
 2
Author: Rich, 2015-01-30 12:45:12

Также обратите внимание на необязательный, но очень важный последний параметр 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);
}
 0
Author: Arnaud Bouchot, 2013-12-06 12:03:48

Пример использования оболочки 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' => '[email protected]' ],
            'merge_vars'        => $merge_vars,
            'double_optin'      => true,
            'update_existing'   => true,
            'replace_interests' => false, // do you want to add or replace?
            'send_welcome'      => false,
        ]
    );

Вам нужна группировка "имя" ИЛИ "идентификатор", оба не нужны. Чтобы получить идентификатор группы, используйте: списки/группы интересов

 0
Author: Justin, 2014-04-28 20:18:14