電子メールをリストに追加するために、NodeJSを使用して新しいMailChimp 3.0 APIを呼び出しています。私はそれがポストマンを経て作業を取得することができますが、私は、ノードのhttpで苦労している:Mailchimp API v3.0 NodeJS経由でリストに電子メールを追加するhttp
var http = require('http');
var subscriber = JSON.stringify({
"email_address": "[email protected]",
"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();
よりもむしろMailchimpからJSONエラーのも、いくつかの並べ替えを取得は、しかし、私は、HTMLを取得しています: 400不正な要求
400不正な要求
nginxの
は、私は "mはここで間違ってやって何のすべてで、それは明らかですか?それは非常に簡単だが、まだ私が試したものは何も動作していないようにみえます。
いくつかの追加の考え:
- HTTPのオプションは、「認証」プロパティを持っているが、私は許可を確保するための代わりのヘッダーを使用していますが、エンコーディング(as mentioned here)なしで送信されます。それでも、 "auth"プロパティで試してみましたが、同じ結果が得られます。
- ExpressJS APIの中から私のクライアントが上記のコードを呼び出すExpress APIを呼び出しています。簡単にするために、この例のすべてを編集しました。そのため、私の変数は "hres"と "hreq"で、Expressの "res"と "req"と区別しています。問題になる理由はありますか?
- 上記のように、私はPOSTmanを使用すると成功した結果を得ることができるので、ホスト、パス、リストID、およびAPIキーが正しいことを少なくとも知っています。
Nodeのhttpsモジュールを使用しましたか?ちょっとした考え。 –