MailChimp: Почему метод PUT с JavaScript возвращает «Использовать PUT для вставки или обновления членов списка» - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь обновить статус одного из моих подписчиков, используя mailchimp API 3.0, Meteor и javascript.

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

request({
  uri,
  list_id,
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'apikey (my api key)'
  },
  json,
}, function(err, res, body) {
  if (err) {
    return console.log("err:", err);
  }
  console.log("connection succeed");
  console.log("res: ", res.body);
  console.log("body: ", body);
});

с помощью

  uri = "https://us15.api.mailchimp.com/3.0/lists/" + (id of my list) + "/members/" + (md5 of my user mail);

и

  json = {
    "email_address": (user mail as a string),
    "status": "unsubscribed"
  };

Но у меня всегда один и тот же вывод:

I20181204-18: 42: 12.714 (8)?title: 'Member Exists', I20181204-18: 42: 12.714 (8)?статус: 400, I20181204-18: 42: 12,714 (8)?деталь: '(адрес электронной почты пользователя) уже является участником списка.Используйте PUT для вставки или обновления членов списка. '

Но я уже использую PUT ... Запрос работает с POST, если я добавляю пользователя впервые.Но теперь я не могу обновить свой статус пользователя ... Что-то не так с моим запросом или с тем, как я использую API?Заранее спасибо.

РЕДАКТИРОВАТЬ 1 -> попытка с GET не работает.Сам запрос правильный, но он не влияет на статус моего подписчика.Поэтому мне все еще нужно заставить PUT работать.

1 Ответ

0 голосов
/ 05 декабря 2018

После просмотра официального документа я нашел ответ!

Для json требуется другой обязательный параметр, и он должен выглядеть следующим образом:

  json = {
    "email_address":  (user mail as a string),
    "status_if_new": "unsubscribed",
    "status": "unsubscribed"
  };
...