Отмените подписку на Mailchimp с помощью Google App Script API - PullRequest
0 голосов
/ 02 февраля 2020

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

"title": "Элемент существует", "status": 400, "detail": "example@example.com уже является членом списка. Используйте PUT для вставки или обновления членов списка".

Даже если я использую «PUT». Есть предложения?

function sendToMailChimp_( email, source ) {

  var user = {
    "SRC" : source
  };

  var payload = {
"merge_fields" : user,
    "email_address": email,
    "status" : "unsubscribed",
    "update_existing" : true // left the update_existing on this way existing emails 
  };

  var headers = {
    "content-type" : "application/json",
    "Authorization" : " Basic " + Utilities.base64Encode(API_USER + ":" + API_KEY)
  };
 Logger.log(headers);
  var options = {
    "method": "Put",
    "headers" : headers,
    "payload": JSON.stringify(payload),
 "followRedirects" : true,
  "muteHttpExceptions": true,
  };

  Logger.log(mc_base_url);
  Logger.log( options );
  //var options = JSON.stringify( options ));
  var emailHash = xxxxxxxxxxxxxxxxxxxxxxxxxx // (email in md5 format); 
var listId = xxxxxxxx // (list id from Mailchimp)
  var response = UrlFetchApp.fetch('https://us2.api.mailchimp.com/3.0/lists/'+listId+'/members/'+emailHash, options );
  if( response.getResponseCode() == 200 ) {
    console.info( "SUCCESS to PROD for " + em );
    Logger.log( "SUCCESS to PROD for " + em );
  } else {
    console.log(response);
    Logger.log(response)
}
}
...