簡體   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