【问题标题】:Mailchimp api to subscribe using java script request issueMailchimp api使用java脚本请求问题订阅
【发布时间】:2017-10-24 09:16:49
【问题描述】:

我正在尝试使用以下 javascript 代码订阅 mailchimp。明智的工作很好,但我收到了错误,比如未授权,因为可能是我没有正确传递 api 密钥。请帮助解决我的问题

var request = new Request('https://<dc>.api.mailchimp.com/3.0/lists/[listid]/members', {
                    method: 'POST',
                    mode: 'no-cors',
                    json: {
                        "email_address": "am_it@live.com",
                        "status": "subscribed",
                    },
                    redirect: 'follow',
                    headers: new Headers({
                        'Content-Type': 'application/json',
                        'Authorization': 'Basic apikey'
                    })
                });

// Now use it!
                fetch(request).then(function (data) {
                    console.log(data);
                });

【问题讨论】:

    标签: javascript jquery mailchimp-api-v3.0


    【解决方案1】:

    您需要使用您的用户名和 api 密钥添加您的身份验证详细信息。您可以使用auth 参数来做到这一点:

    auth: {
        'user': 'yourUserName',
        'pass': 'yourApiKey'
    }
    

    只需将其添加到您的请求对象中:

    Request('https://<dc>.api.mailchimp.com/3.0/lists/[listid]/members', {
                    method: 'POST',
                    mode: 'no-cors',
                    json: {
                        "email_address": "am_it@live.com",
                        "status": "subscribed",
                    },
                    redirect: 'follow',
                    headers: new Headers({
                        'Content-Type': 'application/json',
                        'Authorization': 'Basic apikey'
                    }),
                    auth: {
                        'user': 'yourUserName',
                        'pass': 'yourApiKey'
                    }
                });
    

    我查看了开发人员 mailchimp api 的入门部分中的文档:here,并使用 this pagecurl 示例转换为 javascript 代码。让我知道它是否有效。

    【讨论】:

    • 我试过我得到这个错误:OPTIONS https://.api.mailchimp.com/3.0/lists/listid/members 401(Unauthorized) (index):1 Fetch API无法加载 https://.api.mailchimp.com/3.0/lists/listid/members。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'localhost' 不允许访问。响应的 HTTP 状态代码为 401。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。获取失败
    • 更改您的请求网址,因为https://&lt;dc&gt; The <dc> part of the URL corresponds to the data center for your account. For example, if the last part of your MailChimp API key is us6, all API endpoints for your account are available at https://us6.api.mailchimp.com/3.0/. 然后您必须允许跨源请求。将您的:mode: 'no-cors' 更改为 mode: 'cors'。您还必须将 url 的 [listid] 参数更改为您帐户的列表 url。我相信您可以在 mailchimp 中的仪表板中看到列表 ID。
    • 是的,我已经在这样做了。当我在stackoverflow上发帖时,我只是放了。我虽然收到错误
    • 确保您的请求 mode 设置为 mode: 'cors'
    • 你得到的错误是说 mailchimp 的服务器不允许来自 localhost 的请求,所以你应该从公共 IP 发出这个请求。
    猜你喜欢
    • 2017-06-11
    • 2013-11-09
    • 2015-08-13
    • 2015-06-02
    • 2016-03-20
    • 2016-07-01
    • 2017-05-05
    • 2014-04-24
    • 2019-10-09
    相关资源
    最近更新 更多