繁体   English   中英

如何通过 Node JS 使用自己的库将联系人添加到 Mailchimp 中的列表/受众

[英]How can I add a contact to a list/audience in Mailchimp using its own library via Node JS

下面的代码是使用 Node JS 和 Mailchimp 库以编程方式将联系人添加到列表/受众的 API 调用。 文档位于: https : //mailchimp.com/developer/marketing/guides/create-your-first-audience/#add-a-contact-to-an-audience

const listId = "YOUR_LIST_ID";
const subscribingUser = {
 firstName: "Prudence",
 lastName: "McVankab",
 email: "prudence.mcvankab@example.com"
};

async function run() {
const response = await mailchimp.lists.addListMember(listId, {
  email_address: subscribingUser.email,
  status: "subscribed",
  merge_fields: {
    FNAME: subscribingUser.firstName,
    LNAME: subscribingUser.lastName
  }
});

console.log(
  `Successfully added contact as an audience member. The contact's id is ${
    response.id
  }.`
);
}
run();

这是我在 app.js 中实现代码的方式

app.post("/", function(req, res) {
 const firstName = req.body.firstName;
 const lastName = req.body.lastName;
 const email = req.body.email;

 const apiAudienceName = "Sample Tech Newsletter Subscription";

 const listId = apiAudienceName;
 const subscribingUser = {
  firstName: firstName,
  lastName: lastName,
  email: email
 };

 async function run() {
   const response = await mailchimp.lists.addListMember(listId, {
     email_address: subscribingUser.email,
     status: "subscribed",
     merge_fields: {
       FNAME: subscribingUser.firstName,
       LNAME: subscribingUser.lastName
     }
   });

   console.log(`Successfully added contact as an audience member. The contact's id is ${response.id}.`);

 }

 run();
});

对我来说,我确实按照 Mailchimp 服务器的要求添加到我创建的列表中,但是这段代码抛出了一个错误,提示“未处理的承诺拒绝” 我当然尝试过做我的研究,但作为这门语言的初学者,我不太明白我需要什么才能实现这一点。 如果有人可以纠正我或向我展示代码中的错误,我将不胜感激。 非常感谢你!

注意:我能够通过使用 HTTP 请求模块来完成这项工作。 但是这一次,我想学习如何遵循文档并使用他们给定的代码和库。 对我来说,似乎我这样做了,但似乎不起作用。

通过研究和我所在的课程社区的帮助,我在我的代码中发现了问题。 我希望这可以帮助那些正在/可能会处理同样问题的人。

const apiAudienceName = "Sample Tech Newsletter Subscription";

const listId = apiAudienceName;

正如您在上面的代码中看到的,我将在 Mailchimp 网站中创建的“列表/受众名称”输入到listID变量中。 问题在于 Mailchimp API 需要的是listID而不是您在 Mailchimp API 中的列表名称。

解决此问题的答案是从您在 Mailchimp 网站上的帐户获取list/audience ID并将其用作输入。 list/audience ID是由 Mailchimp 服务器提供的字母数字字符。

如果您需要查找list/audience ID的详细指南,请查看此链接

这是解决此问题的示例代码:

app.post("/", function(req, res) {
 const firstName = req.body.firstName;
 const lastName = req.body.lastName;
 const email = req.body.email;

 const listId = "1a2b3c4d5e777";
 const subscribingUser = {
  firstName: firstName,
  lastName: lastName,
  email: email
 };

 async function run() {
  const response = await mailchimp.lists.addListMember(listId, {
   email_address: subscribingUser.email,
   status: "subscribed",
   merge_fields: {
     FNAME: subscribingUser.firstName,
     LNAME: subscribingUser.lastName
   }
 });

 console.log(`Successfully added contact as an audience member. The contact's id is ${response.id}.`);

 }

 run();
});

你试过订阅了吗? 它有一个简单的 API,您可以使用 JavaScript 将订阅者添加到您的列表中,

  • 例子:

    const data = { email:"sarah@mail.com", //* required username:"sarah", //optional listId:'[LIST_ID]',

     } const url = 'https://api.subscribi.io/v1/subscribers/add' fetch(url,{ method: 'POST', headers: { 'Content-Type': 'application/json', 'secret_key':'MY_SECRET_KEY' // Go the the settings and generate a key }, body: JSON.stringify(data) }).then(response =>{ console.log(response) /* { "data": { "name": "sarah", "email": "sarah@mail.com", "createdAt": "2020-09-25T19:41:07.350Z", "subscribed": true }, "ok": true, "status": "success" } */ }).catch(error=>{ console.error(error) })

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM