the*_*tus 8 http node.js mailchimp mailchimp-api-v3.0
我正在使用NodeJS来调用新的MailChimp 3.0 API,以便将电子邮件添加到列表中.虽然我可以通过POSTman让它工作,但我很难使用Node的http:
var http = require('http');
var subscriber = JSON.stringify({
"email_address": "test@test.com",
"status": "subscribed",
"merge_fields": {
"FNAME": "Tester",
"LNAME": "Testerson"
}
});
var options = {
host: 'https://us11.api.mailchimp.com',
path: '/3.0/lists/<myListID>/members',
method: 'POST',
headers: {
'Authorization': 'randomUser myApiKey',
'Content-Type': 'application/json',
'Content-Length': subscriber.length
}
}
var hreq = http.request(options, function (hres) {
console.log('STATUS CODE: ' + hres.statusCode);
console.log('HEADERS: ' + JSON.stringify(hres.headers));
hres.setEncoding('utf8');
hres.on('data', function (chunk) {
console.log('\n\n===========CHUNK===============')
console.log(chunk);
res.send(chunk);
});
hres.on('end', function(res) {
console.log('\n\n=========RESPONSE END===============');
});
hres.on('error', function (e) {
console.log('ERROR: ' + e.message);
});
});
hreq.write(subscriber);
hreq.end();
Run Code Online (Sandbox Code Playgroud)
但是,我没有从Mailchimp获得某种JSON错误,而是获得HTML:400 Bad Request
是否明白我在这里做错了什么?看起来很简单,但我尝试过的任何东西似乎都没有用.
一些额外的想法:
事实证明,这有一个非常简单的解决方案:选项对象的“主机”属性只需要域名。IE,删除“https://”协议:
var options = {
host: 'us11.api.mailchimp.com',
path: '/3.0/lists/<myListID>/members',
method: 'POST',
headers: {
'Authorization': 'randomUser myApiKey',
'Content-Type': 'application/json',
'Content-Length': subscriber.length
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6629 次 |
| 最近记录: |