Google Apps脚本和外部API

Mat*_*man 8 api https basecamp google-apps-script

如果我没有记错,根据UrlFetch文档,我应该可以在Google Apps脚本中调用New Basecamp API.我怀疑我的混淆来自格式化GAS错误(以及我刚刚开始这一切的事实).我用Google搜索了很久.这就是我所拥有的以及从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);
}
Run Code Online (Sandbox Code Playgroud)

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")
Run Code Online (Sandbox Code Playgroud)

我希望这是一个合理的问题,谢谢你的帮助.

Tim*_*per 15

为正确的标头HTTP基本认证,这使得使用的Utilities.base64Encode,如下:

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