2015-08-14 105 views
0

我的主要目標是將用戶添加到列表中。目前我正在用curl來處理使用MailChimp API的概念。Mailchimp API v3授權

我所做的請求將用戶添加到列表:

curl -i -H "Content-Type: application/json" -d '{"apikey" : "60dd1f3aaa977bf1zzza159yyye93exx-us11","email_address": "[email protected]","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文檔 - 簡短了。有誰知道如何設計授權請求?

謝謝。

回答

0

請按照下列步驟進行:

  1. 創建您的base64編碼的API密鑰:BASE64_ENCODE(您的API用戶名:API密鑰)在您的CURL請求
  2. 使用基本身份驗證爲
    
    curl -i -H "Content-Type: application/json" -H "Authorization:Basic your base64 encoded string" https://us11.api.mailchimp.com/3.0/ 
    
  3. 請注意,您必須使用「基本」一詞
  4. 因此,在發出任何其他請求之前,請在您的所有捲髮請求中添加驗證標頭以授權您的自己。所以你的情況嘗試以下

    
    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": "[email protected]","status":"subscribed", 
    "merge_fields":{"FNAME":"Urist","LNAME":"McVankab"}}' https://us11.api.mailchimp.com/3.0/lists/ant6308990/members
+0

沒得到什麼193105是基本代碼。另外你忘了'\',因爲你在curl命令中使用了linebreaks。 – Adam

+0

是的,你是對的。這是我的錯誤,請刪除193105。 – Janaki

1

這是在V3 PHP /捲曲權威性與API密鑰

$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);