带有 NodeJS 的 Mailchimp API - 将成员添加到列表返回我"Error: getaddrinfo ENOTFOUND"



我在NodeJS中使用Mailchimp API,但无法将成员添加到列表中。

这是我的片段.js

var username = "&&";
var password = "&&-us&&";
var auth = "Basic " + new Buffer(username + ":" + password).toString("base64");
var url = "https://us-&&.api.mailchimp.com/3.0/lists/[listId]/members";
var json = { "email_address":"test@ŧest.com", 
"status":"pending", 
"merge_fields":{ "FNAME" : "newuser", 
"LNAME" : "happy" }
}
request({ url, json: json, method: 'POST', 
headers: { 'Content-Type': 'application/json', 
'Authorization': 'apikey ' + password }
}, function(err, res, body){
if(err){ 
return console.log("err:", err) 
} 
console.log("connection succeed"); console.log("res: ", res) 
});

我的控制台返回我:

err: { Error: getaddrinfo ENOTFOUND us-'&&.api.mailchimp.com us-18.api.mailchimp.com:443

at errnoException (dns.js:50:10(

at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26(

代码:"未找到",

errno: 'ENOTFOUND',

syscall: 'getaddrinfo',

主机名:"us-&.api.mailchimp.com",

主持人:"us-&.api.mailchimp.com",

端口:443 }

我不知道出了什么问题,如果有人有提示,那就太好了。

有效的网址类似于https://serverName.api.mailchimp.com/3.0/lists/listID.

您需要替换 URL 中的以下两个才能使其正常工作:

  1. serverName - 您必须生成自己的特定 API 密钥,如下所示:#########################-us2.在这种情况下,您必须将serverName替换为 url 中的us2
  2. listID - 您必须在mailchimp上生成一个特定的列表ID,从中获得一个列表ID,您必须在URL中替换该列表ID,例如#######

因此,最终网址将如下所示https://us2.api.mailchimp.com/3.0/lists/#######.

我遇到了这个问题,但仅限于生产中。在我的开发环境中一切正常。我忘了向我的托管服务提供商提供所需的环境变量。

按照惯例,我有 2 个环境变量。MAILCHIMP_API_KEYMAILCHIMP_SERVER_PREFIX.NodeJS无法访问MailChimp的服务器,因为URL的一部分丢失了。

最新更新