MailChimp API v3.0 - не удается обновить тег существующего участника - PullRequest
0 голосов
/ 11 февраля 2020

У меня возникают некоторые проблемы при попытке добавить / обновить теги от существующего пользователя.

Когда я обновляю информацию о существующем члене, он не обновляет тег (используя метод "PATCH"). Обновляет все поля, но не тег. Он создает тег при создании нового члена в списке (используя метод "POST").

Код, который я использую:

function add_suscriber($data)
    {
    //Data Format:
        //$data = array(
            //'apikey'        => $api_key,
            //'listid'        => $list_id,
            //'email_address' => $email,
            //'status'     => $suscripcion,
            //'tags'  => array($tags),
            //'merge_fields'  => array(
            //    'FNAME' => $nombre,       //nombre
            //    'LNAME' => $apellido,     //apellido
            //    'PAIS'  => $pais          //pais de residencia
            //    )
            //);
    $API_URL =   'https://' . substr($data['apikey'],strpos($data['apikey'],'-') + 1 ) . '.api.mailchimp.com/3.0/lists/' . $data['listid'] . '/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:'.$data['apikey'] )));
    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);                
    }

При этом, когда это новый пользователь, у меня нет проблем; но если пользователь уже существует (в любой аудитории), все обновляется, но тег отсутствует.

Заранее благодарен за помощь!

...