2013-03-18 27 views
8

私が間違っていない場合は、UrlFetch Documentationとして、New Basecamp APIをGoogle Apps Scriptから呼び出すことができます。私は私の混乱がフォーマットGASの間違いから来ていると思う(そして、私はすべてこれを始めているという事実)。私はこれをしばらく試してみました。これは私が持っているものであり、エラーは私はガスから取り戻す:ガス中のGoogle Appsスクリプトと外部API

myCode:

function myFunction() { 
    var url = "https://basecamp.com/******/api/v1/projects.json"; 
    var headers = { 
       "contentType": "application/json", 
       "headers":{ "User-Agent": "MY_APP_NAME", 
          "username:password" : "user:pass"}, 
       "validateHttpsCertificates" :false 
       }; 

var response = UrlFetchApp.fetch(url, headers); 
var text = response.getResponseCode(); 
Logger.log(text); 
} 

ガスのエラーメッセージ:私は、これは合理的な疑問であると思いますし、あなたに感謝

Request failed for https://basecamp.com/2166446/api/v1/projects.json returned code 401. 
Server response: HTTP Basic: Access denied. (line 9, file "Code") 

助けを求めて次のように

答えて

15

Utilities.base64Encodeを利用しHTTP Basic Authenticationの正しいヘッダは、次のとおりです。

"headers": { 
    "User-Agent": "MY_APP_NAME (App URL/your email address)", 
    "Authorization": "Basic " + Utilities.base64Encode(username + ":" + password) 
}, 
+0

アメージング!ありがとう!うまく動作します –

+0

この情報は私がそれを学ぶことができるサイトはありますか? –

+1

@ mat10112:情報はすべての場所にあります。元の投稿のAPIへのリンクから始めました。ここでは、HTTP基本認証を使用できることが記載されています。それはOAuthよりも使いやすいので、私はWikipediaに行きHTTPの基本認証に使う正確なヘッダーをダブルチェックしました。私は、[App Script API](https://developers.google.com/apps-script/)のドキュメントページをチェックしました。ビルドインユーティリティがあることはわかっていました。それから、私はちょうどそれをまとめました。 –

関連する問題