Mailchimp API v3.0 изменяет адрес подписчика

Я хотел бы знать, если Mailchimp API v3.0 позволяет изменить адрес EMAIL для подписчика.

Это то, что у меня есть:

$email = strtolower(trim($oldEmail));
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    return false;
}
$emailHash = md5($email);

$result = $this->patch('/lists/'.$listid.'/members/'.$emailHash, 
    array(
        'email_address' => $oldEmail,
        'merge_fields' => array("EMAIL" => $newEmail),
        'status' => "subscribed",
    ));

И это не работает. Mailchimp возвращает обычный ответ GET MEMBER и показывает, что ничего не изменилось.

Любая идея?

Спасибо, Риккардо

Ответ 1

Я знаю, что это немного поздно, но сейчас метод PUT (.../3.0/lists/{listId}/members/{md5}) позволяет изменить адрес электронной почты.

Я отправляю новое электронное письмо в теге и теге MERGE0 (EMAIL), но используя md5 из предыдущего сообщения. Он правильно меняет адрес электронной почты.

Ответ 2

В соответствии с документами. Это тоже не работает на нашей стороне, поэтому мы свяжемся с Mailchimp, чтобы узнать причину, почему это в документе.

EDIT: это действительно невозможно, документация устарела. Вот что сказал mailchimp об этом:

Привет, Филипп, Спасибо, что обратились к поддержке MailChimp с этими проблемами API, а также за помощь в оказании помощи. С MailChimp версии 3.0 пользователи не могут обновить адрес электронной почты подписчика. Хотя это, возможно, было доступно в прошлых версиях нашего API, оно больше не поддерживается. Чтобы обновить адрес электронной почты абонента, лучшим вариантом будет обновление вручную из MailChimp. Каждый адрес электронной почты считается уникальным идентификатором для членов списка. Я могу, конечно, понять, как документация может немного ввести в заблуждение, и у вас есть возможность обновлять поля подписчика в списке, однако адрес электронной почты не является одним из них. Вот почему вы не видели эту информацию, обновленную в MailChimp. Я буду рассматривать документацию с этой целью и предлагаю внести изменения в эту статью, если мы действительно предположим, что адреса электронной почты могут быть обновлены с использованием API. Благодарим за эту обратную связь и за то, что вы с нами. Мы ценим ваше время, энергию и терпение, поскольку мы рассматривали вещи на нашей стороне. Еще раз спасибо за то, что вы выбрали MailChimp, и держите нас в курсе любых других вопросов, которые могут возникнуть в будущем.

Ответ 3

Нет, MailChimp действительно не позволяет изменять адреса электронной почты. Вы можете сделать это в веб-приложении, но почти вся статистика и информация о деятельности не переносятся. API v3.0 по этой причине не поддерживает изменение адресов электронной почты. Вы хотите отказаться от подписки или удалить старый адрес, а затем повторно создать новый.

Ответ 4

В соответствии с MailChimps changelog изменение электронной почты пользователя возможно с 3 ноября 2016 года с патчем и поместите.

11/03/2016

Добавьте возможность обновления существующих членов списка email_address через вызов PATCH или PUT /Списки/{list_id}/члены/{subscriber_hash}

Вам не нужно использовать merge_field для изменения электронной почты. Вы можете просто сделать это следующим образом:

$emailHash = md5($oldEmail);

$result = $this->patch('/lists/'.$listid.'/members/'.$emailHash, 
    array(
        'email_address' => $newEmail,
        'status' => "subscribed",
    ));