【问题标题】:Why do I get the "Invalid URI" error from MailChimp?为什么我从 MailChimp 收到“无效 URI”错误?
【发布时间】:2015-07-28 03:41:20
【问题描述】:

我正在尝试使用新的 MailChimp API v3.0,使用 Node.js 的 request 模块从自定义表单订阅用户。我想保存他们的电子邮件地址和邮政编码。当我尝试向us-10.api.mailchimp.com/3.0/lists/<list-ID>/membersus-10 是我的 API 密钥末尾的数据中心 ID)发送 POST 请求时,我收到“无效 URI”错误响应。

我错过了什么?

【问题讨论】:

    标签: node.js http request uri mailchimp


    【解决方案1】:

    us-10 不是正确的子域。省略破折号,它应该会立即清除。

    【讨论】:

    • 哦,哎呀。我凭记忆打字。我确实us10
    • 那么这就是正确的 URI,假设列表 id 是正确的——你会想要包含你收到的实际错误响应,甚至可能是你用来发出请求的代码.
    【解决方案2】:

    对我有用

    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 传递给请求将在body 对象上内部调用JSON.stringify,并确保使用正确的标头content-type: application/json 发送HTTP 请求

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

    【讨论】:

    • 我开始为我的用例使用另一种解决方案。但如果我发现自己再次使用 MailChimp 的 API,我可能会回到这个。
    猜你喜欢
    • 2017-11-30
    • 2021-03-21
    • 2011-10-08
    • 2010-11-15
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2011-11-05
    相关资源
    最近更新 更多