为什么我会得到"无效的URI"来自MailChimp的错误?

时间:2015-07-28 03:41:21

标签: node.js http request uri mailchimp

我正在尝试使用新的MailChimp API v3.0,使用Node {j}的this answer模块从自定义表单订阅用户。我想保存他们的电子邮件地址和邮政编码。当我尝试向us-10.api.mailchimp.com/3.0/lists/<list-ID>/members发送POST请求时(其中us-10是我的API密钥末尾的数据中心ID),我得到一个&#34;无效的URI&#34;错误回应。

我错过了什么?

2 个答案:

答案 0 :(得分:0)

us-10不是正确的子域名。不要破折号,这应该清除。

答案 1 :(得分:0)

适用于我

var request = require('request');
var config  = require('../config/config');

var api_key  = config.mailchimp.api_key,
    username = config.mailchimp.username,
    dc       = config.mailchimp.dc,
    list_id  = config.mailchimp.list_id;

var url = 'https://'+username+':'+api_key+'@' + dc + '.api.mailchimp.com/3.0/lists/' + list_id + '/members';

var subscribed_user = {
    email_address: 'test@node.com', // required
    status: 'subscribed'            // required 'subscribed' || 'unsubscribed' || 'pending' || 'cleaned'
};

request.post({ url: url, body: subscribed_user, json: true }, function( err, res, body ){
    if( !err )
        console.log( JSON.stringify( body, null, 4 ) );
});
  • 根据以下语法传递auth参数: username:password@ RFC 1738
  • json: true传递给请求将在内部调用JSON.stringify对象上的body,并确保使用正确的标头content-type: application/json发送HTTP请求

或者,您可以使用request-json模块。