9

私が間違っていなければ、UrlFetch ドキュメントに従って、 Google Apps Script 内から新しい Basecamp APIを呼び出すことができるはずです。私の混乱は、GAS のフォーマットの間違い (そして、私がこのすべてを始めたばかりであるという事実) から来ているのではないかと思います。私はこれを長い間グーグルで検索しました。これは私が持っているもので、GASから返されるエラーです:

GAS の 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);
}

GAS エラー メッセージ:

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

これが合理的な質問であることを願っています。助けてくれてありがとう。

4

1 に答える 1

16

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

"headers": {
    "User-Agent": "MY_APP_NAME (App URL/your email address)",
    "Authorization": "Basic " + Utilities.base64Encode(username + ":" + password)
},
于 2013-03-18T21:53:11.830 に答える