在获取 mailchimp api 时收到 401 错误

Posted

技术标签:

【中文标题】在获取 mailchimp api 时收到 401 错误【英文标题】:Recieving 401 error on mailchimp api fetch 【发布时间】:2020-09-03 16:35:18 【问题描述】:
function emailSubscribe() 
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w2,3)+$/)
     
        const data = 
            members: [
              
                email_address: document.getElementsByClassName("email input"),
                status: 'subscribed'
              
            ]
          ;

          const postData = JSON.stringify(data);

          fetch('https://us19.api.mailchimp.com/3.0/lists/mylist', 
            method: 'POST',
            mode: 'no-cors',
            headers: 
              Authorization: 'auth apikey-us19',
            ,
            body: postData
          )
            .then(function(response) 
            response.statusCode === 200 ?
            alert("You have been successfully subscribed to StreamIntra. An email should be arriving shortly.") :
            alert("An error has occurred, please try again later.")
            .catch(console.log(response))
            )
            else 
       alert("You have entered an invalid email address!")
     
  

我有这个函数,我通过本地快递服务器上的提交按钮调用它,但它一直给我一个 401 错误(不正确的 api 密钥)。我已经阅读了 api 并检查了我的 api 密钥,一切看起来都很好。我也尝试过编码和发送密钥,仍然没有。 我看过这个链接:MailChimp. Error 401 (Unauthorized) when sending a request for adding a new list member 但似乎没有提供答案。他提到 mailchimp 不适用于 cors,但我在 no-cors 模式下运行。有什么方法可以验证我的请求,以免我收到错误消息?

【问题讨论】:

【参考方案1】:

mailchimp 服务器有问题!尝试改用 firebase。

尝试使用它。 :

function emailSubscribe() 
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w2,3)+$/)
     
        const data = 
            email: document.getElementsByClassName("email input"),
            [ANY OTHER DATA YOU WANT]...
          ;

          const postData = JSON.stringify(data);

          fetch('https://[YOUR ADDRESS].firebaseio.com/', 
            method: 'POST',
            mode: 'no-cors',
            headers: 
              Authorization: '[APIKEY]',
            ,
            body: postData
          )
            .then(function(response) 
            response.statusCode === 200 ?
            alert("You have been successfully subscribed to StreamIntra. An email should be arriving shortly.") :
            alert("An error has occurred, please try again later.")
            .catch(console.log(response))
            )
            else 
       alert("You have entered an invalid email address!")
     
  

【讨论】:

嘿,你说得对,我确实认为这是 mailchimp 服务器的错误,但是我决定完全采用不同的方法来解决这个问题。

以上是关于在获取 mailchimp api 时收到 401 错误的主要内容,如果未能解决你的问题,请参考以下文章

为啥在连接到 mailchimp API 3.0 时出现 401 错误

使用 Api v3.0 和 jQuery Ajax 方法的 Mailchimp 连接错误 (401)

使用 RestSharp 向 Mailchimp API 3.0 查询帐户详细信息时出现“API 密钥丢失”错误

使用 Coldfusion/Railo 向 Mailchimp API v3.0 发送 PUT 请求时出现 401 未经授权的错误

访问Power BI API时获取401 Unauthorized

Mailchimp API v3 创建列表 REST 客户端 Ruby