Mailchimp Api не может получить поле email_address, которое я отправляю

#javascript #api #mailchimp-api-v3.0

#javascript #API #mailchimp-api-v3.0

Вопрос:

Я пытаюсь использовать mailchimp API для подписки пользователя на существующий список.
Используя https-запрос узла, я отправляю следующий запрос на сервер mailchimp:

 const url = `https://us7.api.mailchimp.com/3.0/lists/<list_id>/members?skip_merge_validation=true'`;

  const options = {
    method: "POST",
    auth: "<name>:<API Key>",
  };

  const request = https.request(url, options, (response) => {
    response.on("data", (data) => {
      console.log(JSON.parse(data));
      if (data.status === 200) {
        res.redirect("/sucess");
      } else {
        res.redirect("/failure");
      }
    });
  });
  request.write(JSON.stringify(user_data));
  request.end();
});
 

Перед отправкой запроса я выполняю консоль.регистрируйте пользовательские данные, собранные из интерфейса.

 console.log("USER DATA : "   JSON.stringify(user_data));
 

и это ответ, который я получаю от сервера API :

 USER DATA : {"members":[{"email_address":"a.b@email.com","status":"subscribed","merge_fields":{"FNAME":"A","LNAME":"B"}}]}
{
  type: 'http://developer.mailchimp.com/documentation/mailchimp/guides/error-glossary/',
  title: 'Invalid Resource',
  status: 400,
  detail: "The resource submitted could not be validated. For field-specific details, see the 'errors' array.",
  instance: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
  errors: [
    {
      field: 'email_address',
      message: 'This value should not be blank.'
    }
  ]
}
 

Как вы можете видеть в журнале, поле email_address не является пустым.

Кто-нибудь сталкивался с этой проблемой раньше? есть идеи?

Заранее спасибо

Ответ №1:

Я нашел проблему, она была связана с моей пользовательской структурой данных. Теперь он работает со следующим кодом

 const user_data = {
    email_address: req.body.email,
    status: "subscribed",
    merge_fields: {
      FNAME: req.body.fName,
      LNAME: req.body.lName,
    }
}