MailChimp:为什么带有javascript的PUT方法返回“使用PUT插入或更新列表成员”

时间:2018-12-04 10:54:59

标签: javascript meteor request mailchimp mailchimp-api-v3.0

我正在尝试使用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)?标题:“成员存在”,   I20181204-18:42:12.714(8)?状态:400,I20181204-18:42:12.714(8)?详细信息:'(用户邮件地址)已经是列表成员。使用PUT   来插入或更新列表成员。'

但是我已经在使用PUT ...如果是第一次添加用户,则该请求可与POST一起使用。但是现在我无法更新用户状态... 我的请求或使用API​​的方式有问题吗?预先感谢。

编辑1 ->使用 GET 尝试不起作用。该请求本身是正确的,但对我的订户状态没有影响。因此,我仍然需要使 PUT 起作用。

1 个答案:

答案 0 :(得分:0)

查看了官方文档后,我找到了答案!

json需要另一个强制性参数,并且应如下所示:

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