Добавить теги к подписчику mailchimp, созданному через api php

Я использую код PHP Curl для добавления нового подписчика в MailChimp. Он добавляет подписчика со всей информацией, но я не понимаю, как добавить теги с помощью того же вызова Curl. Я пробовал разными способами, но ничего не помогло. Пожалуйста, дайте мне знать, как я могу добавить теги к этому новому подписчику.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
7 281
3

Ответы 3

Согласно документации MailChimp, вам нужно использовать отдельный вызов для добавления тегов. https://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/tags/ Обратите внимание, что в моем тестировании ответное сообщение было пустым, хотя тег был добавлен. Либо я что-то делаю не так, либо в API есть ошибка.

да, но есть еще поле тегов при создании участников mailchimp.com/developer/reference/lists/list-members

Tommy 08.11.2019 12:52

Мое решение для отправки тегов POST / lists / {list_id} / members / {subscriber_hash} / с помощью PHP - Надеюсь, это кому-то поможет, это свело меня с ума

Здесь используется класс-оболочка Drewm MailChimp v3.

https://github.com/drewm/mailchimp-api - который я понятия не имел, как настроить, поэтому вместо этого я установил этот подключаемый модуль

https://wordpress.org/plugins/nmedia-mailchimp-widget/ - который я никогда не использовал, но он успешно настраивает все, что вам нужно сделать, в ваш веб-сайт, как указано Drewm! 2 минуты

Я отредактировал 2.0 на 3.0 в /classes/mailchimp/Mailchimp.php в строке 23 на всякий случай.

общедоступный $ root = 'https://api.mailchimp.com/3.0';

ПРИМЕЧАНИЕ: list_id относится к ИДЕНТИФИКАТОРУ СПИСКА ПЛОЩАДЕЙ, а не к идентификатору, который вы видите в веб-интерфейсе.

ТАК, по сути, вам не нужно знать ID # для тега, обычная jane "thename" и устанавливать его как активный или неактивный

function add_tags()  {

use \DrewM\MailChimp\MailChimp;
$MailChimp = new MailChimp('271afffe3a_myfancyid-us8');
$list_id='dsgf350h53';  //  <--- PLAYGROUND LIST_ID
$hashed= md5('[email protected]');

$payload = array( 'tags' =>
    array(
        array('name' => 'upgraded', 'status' => 'active' ),
    ),
);

$result = $mailchimp->post( "lists/$list_id/members/$hashed/tags", $payload );


//   this error success produces NOTHING in the Response from MailChimp
// because it doesn't seem to send anything, but if not error then success I guess 
// so you can still capture its status 
if ($MailChimp->success()) {
    // do whatever
    echo 'Success<br>';
    print_r($result);   
} else {
    // do whatever
    echo 'Error<br>';
    print_r($result);
    echo $MailChimp->getLastError();
}

}  // end function

// set status as either active or inactive for add or remove
// so you can load this however you like to manage users throughout your site   

Ах, массив внутри массива внутри массива. Глупо, что я упустил что-то ТАКОЕ очевидное, MailChimp. Спасибо за помощь, парень.

JDandChips 03.09.2020 18:20

Меня это тоже зацепило, спасибо OP :)

Gary O' Donoghue 21.01.2021 12:14

Это рабочий пример регистрации пользователя в списке рассылки и добавления тегов:

        $api_key = 'YOUR_API_KEY';
        $list_id = 'YOUR_LIST_ID';
        $email =  'USER_EMAIL';
        /**
        *  Possible Values for Status:
        *  subscribed, unsubscribed, cleaned, pending, transactional
        **/
        $status = 'subscribed'; 
        if ($email) {
            $data = array(
              'apikey'        => $api_key,
              'email_address' => $email,
              'status'     => $status,
              'tags'  => array('your tag name'),
              'merge_fields'  => array(
                    'FNAME' => $fname,
                    'LNAME' => $lname
                  )
            );

          // URL to request
          $API_URL =   'https://' . substr($api_key,strpos($api_key,'-') + 1 ) . '.api.mailchimp.com/3.0/lists/' . $list_id . '/members/' . md5(strtolower($data['email_address']));

          $ch = curl_init(); 
          curl_setopt($ch, CURLOPT_URL, $API_URL);
          curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Basic '.base64_encode( 'user:'.$api_key )));
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
          curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
          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_encode($data) ); 
          $result = curl_exec($ch);  
          curl_close($ch);

          $response = json_decode($result);
        }
SSL verify=false очень умный.
emix 28.08.2019 11:20

не уверен, почему он проголосовал против, но это рабочий пример.

Seefan 28.08.2019 11:24

У меня не сработало - вернувшийся пользователь не имеет прикрепленных тегов.

Meekohi 29.10.2019 19:45

+1: 10 часов спустя это решение, наконец, помогло мне добавить теги при добавлении подписчика. По какой-то причине API POST / lists / {list_id} / members НЕ указывает, как создать тег. Если я вам нравлюсь (пробовали 10 различных типов массивов "name": "tag name", "status": "inactive" .... Тогда это, безусловно, может вам помочь.

Mikkel 14.12.2019 11:45

Другие вопросы по теме