Sto utilizzando NodeJS per chiamare la nuova API MailChimp 3.0 per aggiungere un messaggio di posta elettronica a un elenco. Mentre io posso farlo funzionare via postino, sto avendo un momento difficile con http del nodo:Mailchimp API v3.0 aggiungi e-mail all'elenco tramite 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();
Piuttosto che ottenere anche una sorta di errore JSON da Mailchimp, però, mi sto HTML: 400 Bad Request
400 Richiesta
nginx
E 'chiaro a tutti quello che io "m facendo male qui? sembra abbastanza semplice, ma nulla ho provato sembra funzionare.
Qualche considerazione aggiuntivi:
- Mentre il http opzioni hanno una proprietà "auth", sto usando le intestazioni invece per garantire l'autorizzazione viene inviato senza la codifica (as mentioned here). Tuttavia, ho anche provato con la proprietà "auth" e ottengo lo stesso risultato.
- In realtà sto effettuando questa chiamata da all'interno di un'API ExpressJS (il mio client chiama l'API Express, che chiama il codice precedente - Ho modificato tutto questo da questo esempio per semplicità). Ecco perché le mie variabili sono "hres" e "hreq", per distinguerle da "res" e "req" in Express. C'è qualche ragione che potrebbe essere il problema?
- Come accennato in precedenza, I am sono in grado di ottenere risultati positivi quando si utilizza POSTman, quindi almeno il mio host, percorso, ID elenco e chiave API sono corretti.
Hai provato a utilizzare il modulo https di Node? Solo un pensiero. –