Google Apps脚本中的UrlFetchApp.fetch出现意外错误

时间:2013-05-27 12:54:09

标签: javascript google-apps-script pingdom

我正尝试在该示例后访问Google Apps脚本中的Pingdom APIhttps://developers.google.com/apps-script/external_apis

query = 'credits';
var username = 'foo';
var password = 'bar';
var credentials = username+':'+password;
var url = 'https://'+credentials+'@api.pingdom.com/api/2.0/'+encodeURIComponent(query);
var headers = {
  "App-Key": "abcd",
};
var options = {
    "method": "get",
    "headers": headers,
    'validateHttpsCertificates':false
};
Logger.log(url);
var response = UrlFetchApp.fetch(url);

代码执行因以下错误而中断:

  

意外错误:https://foo:bar@api.pingdom.com/api/2.0/credits   (第17行,文件“代码”)驳回

如果我将上述URL复制/粘贴到浏览器中,它可以正常工作(即我从pingdom API获取“Missing application key”,确认正确提供的用户名和密码,否则会出现Invalid Credentials错误)。我在encodeURIComponent上使用credentials进行了尝试,但是我得到了同样的错误。 'muteHttpExceptions':true也无济于事。

知道什么可能导致错误吗?

1 个答案:

答案 0 :(得分:4)

似乎在URL中包含登录信息会导致UrlFetchApp出错。请在我们的Issue Tracker中提交错误。同时,将登录信息放在Authorization标头中,它应该可以正常工作。

var response = UrlFetchApp.fetch(url, {
  headers: {
    'Authorization': 'Basic ' + Utilities.base64Encode(username + ':' + password)
  }
});