0

我正在尝试将新成员添加到 MailChimp 列表中,但我不断收到以下错误并且不明白为什么。

{
  type: 'https://mailchimp.com/developer/marketing/docs/errors/',
  title: 'Invalid Resource',
  status: 400,
  detail: "The resource submitted could not be validated. For field-specific details, see the 'errors' array.",
  instance: '/* secret */',
  errors: [
    {
      field: 'email_address',
      message: 'This value should not be blank.'
    }
  ]
}

这是代码:

const express = require("express");
const bodyParser = require("body-parser");
const request = require("request");
const https = require("https");

const app = express();

app.use(express.static("public"));

app.use(bodyParser.urlencoded({
  extended: true
}));

app.get("/", function(req, res) {
  res.sendFile(__dirname + "/signup.html")
})

app.post("/", function(req, res) {
  const firstName = req.body.fname;
  const lastName = req.body.lname;
  const email = req.body.mail;
  console.log(firstName);
  console.log(lastName);
  console.log(email);

  const data = {
    members: [{
      email_address: email,
      status: "Subscribed",
      merge_fields: {
        FNAME: firstName,
        LNAME: lastName
      }
    }]
  };
  const jsonData = JSON.stringify(data);
  const url = "https://us5.api.mailchimp.com/3.0/lists/4e5319cda3/members"
  const option = {
    method: "post",
    auth: "/* secret */"
  }

  const request = https.request(url, option, function(response) {
    response.on(
      "data",
      function(data) {
        console.log(JSON.parse(data));
      })
  })

  request.write(jsonData);
  request.end();
});

app.listen(3000, function() {
  console.log("server is working in port 3000");
});
4

1 回答 1

0

我认为 Mailchimp 的这个端点只接受一个元素而不是成员列表,尝试只发送一个成员

这是他们文档网站上的正文示例

{"email_address":"","email_type":"","status":"subscribed","merge_fields":{},"interests":{},"language":"","vip":false,"location":{"latitude":0,"longitude":0},"marketing_permissions":[],"ip_signup":"","timestamp_signup":"","ip_opt":"","timestamp_opt":"","tags":[]}

在您的情况下,尝试将您的数据 const 更改为:

  const data = {
  email_address: email,
  status: "Subscribed",
  merge_fields: {
    FNAME: firstName,
    LNAME: lastName
  }
};
于 2021-09-01T14:32:03.453 回答