【问题标题】:Mailchimp API v3 authorisationMailchimp API v3 授权
【发布时间】:2015-11-08 01:17:01
【问题描述】:

我的主要目标是将用户添加到列表中。我目前正在使用 curl 来了解使用 MailChimp API 的概念。

我已完成将用户添加到列表的请求:

curl -i -H "Content-Type: application/json" -d '{"apikey" :  "60dd1f3aaa977bf1zzza159yyye93exx-us11","email_address": "urist.mcvankab@freddiesjokes.com","status":"subscribed","merge_fields":{"FNAME":"Urist","LNAME":"McVankab"}}' https://us11.api.mailchimp.com/3.0/lists/ant6308990/members/

此请求返回:

HTTP/1.1 401 Unauthorized
Server: nginx
Content-Type: application/problem+json; charset=utf-8
Content-Length: 210
Link:<https://us11.api.mailchimp.com/schema/3.0/ProblemDetailDocument.json>; rel="describedBy"
Date: Fri, 14 Aug 2015 17:22:05 GMT
Connection: close

{"type":"http://kb.mailchimp.com/api/error-docs/401-api-key-missing","title":"API Key Missing","status":401,"detail":"Your request did not include an API key.","instance":"17eb4090-13e4-47ff-aee1-ca62281fe547"}

我想知道如何获得授权。试图阅读 API 文档 - 很短。有谁知道如何设计授权请求?

谢谢。

【问题讨论】:

    标签: curl mailchimp


    【解决方案1】:

    这是在 v3 中使用 api 密钥进行 PHP/cURL 身份验证的基本代码

    $username = "tcgumus";
       //it can be anything    
    $password = "API KEY";    
       // create curl resource     
    $ch = curl_init();      
        // set url      
    curl_setopt($ch, CURLOPT_URL, "http://us10.api.mailchimp.com/3.0/"); 
        //make sure your dc is correct     
        //return the transfer as a string      
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);     
    curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");    
        // $output contains the output string     
    $output = curl_exec($ch);     
        // close curl resource to free up system resources     
    curl_close($ch);       
    print_r($output);   
    

    【讨论】:

      【解决方案2】:

      您可以使用 cURL 的 --user 参数,如 MailChimp 的 API v3 documentation 所示。

      【讨论】:

        【解决方案3】:

        请按照此处的步骤操作:

        1. 创建您的 base64 编码 api 密钥:base64_encode(您的 api 用户名:api 密钥)
        2. 在您的 CURL 请求中使用基本身份验证作为
          
          curl -i -H "Content-Type: application/json" -H "Authorization:Basic your base64 encoded string" https://us11.api.mailchimp.com/3.0/
          
        3. 请注意,您必须使用“基本”一词
        4. 因此,在您的所有 curl 请求中添加身份验证标头以在发出任何其他请求之前授权您自己。所以在你的情况下尝试以下

          
          curl -i -H "Content-Type: application/json" 
          -H "Content-Type: application/json"
          -H "Authorization:Basic your base64 encoded string"
          -d '{"apikey" :  "60dd1f3aaa977bf1zzza159yyye93exx-us11","email_address": "urist.mcvankab@freddiesjokes.com","status":"subscribed",
          "merge_fields":{"FNAME":"Urist","LNAME":"McVankab"}}' https://us11.api.mailchimp.com/3.0/lists/ant6308990/members

        【讨论】:

        • 没有得到 193105 是什么。另外,您忘记了“\”,因为您在 curl 命令中使用了换行符。
        • 是的,你是对的。这是我的错误,请删除 193105。
        猜你喜欢
        • 2015-09-14
        • 1970-01-01
        • 2016-02-20
        • 1970-01-01
        • 1970-01-01
        • 2016-06-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多