Google Apps脚本和外部API
问题描述:
如果我没有弄错,按UrlFetch Documentation我应该可以在Google Apps脚本中调用New Basecamp API。我怀疑我的困惑来自格式化的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);
}
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")
我希望这是一个合理的问题,谢谢寻求帮助。
答
正确的标题为HTTP Basic Authentication,这使得Utilities.base64Encode
使用,如下:
"headers": {
"User-Agent": "MY_APP_NAME (App URL/your email address)",
"Authorization": "Basic " + Utilities.base64Encode(username + ":" + password)
},
惊人!谢谢!伟大的作品 – 2013-03-18 21:58:56
有没有这方面的信息是我可以学习的网站? – 2013-03-18 22:04:52
@ mat10112:信息遍布整个地方。我从原始发布的API链接开始,提到您可以使用HTTP基本身份验证。由于这比OAuth更易于使用,因此我去了维基百科,仔细检查用于HTTP基本认证的确切标题。然后我检查了[App Script API](https://developers.google.com/apps-script/)文档页面,因为我知道他们有一些内置实用程序。然后我把它放在一起。 – 2013-03-18 22:11:31