Add mailchimp subscriber error: name.toUpperCase is not a function

Add mailchimp subscriber error: name.toUpperCase is not a function

我正在尝试将订阅者添加到我的 mailchimp 列表,但一直收到错误 TypeError: name.toUpperCase is not a function。这是我的代码,下面列出了完整的输出。任何人都知道 mailchimp 是否存在错误或者我做错了什么?

代码

const addSubscriber = function addSubscriber(user) {
  console.log('IN ADD SUBSCRIBER');
  return axios({
    method: 'post',
    url: `https://${mailchimpDC}.api.mailchimp.com/3.0/lists/${mailchimpListId}/members`,
    data: {
      email_address: user.email,
      status: "subscribed",
      merge_fields: {
          FNAME: user.name.firstName,
          LNAME: user.name.lastName,
          ID: user._id,
      },
    },
    headers: `Authorization: apikey ${mailchimpAPIKey}`,
  })
  .then(res => {
    console.log('res', res);
  })
  .catch((err) => {
    console.log('err', err);
  })
};

输出

IN ADD SUBSCRIBER
err with mailchimp request [TypeError: name.toUpperCase is not a function]

终于想通了。授权 header 的格式不正确!授权应该是header下的一个keyobject。我还添加了 Content-Type。现在一切正常!

const addSubscriber = function addSubscriber(user) {
  console.log('IN ADD SUBSCRIBER');
  return axios({
    method: 'post',
    url: `https://${mailchimpDC}.api.mailchimp.com/3.0/lists/${mailchimpListId}/members`,
    data: {
      email_address: user.email,
      status: "subscribed",
      merge_fields: {
          FNAME: user.name.firstName,
          LNAME: user.name.lastName,
          ID: user._id,
      },
    },
    headers: {
      'Content-Type': 'application/json',
      Authorization: `apikey ${mailchimpAPIKey}`,
    },
  })
  .then(res => {
    console.log('res', res);
  })
  .catch((err) => {
    console.log('err with mailchimp request', err);
  })
};