我正尝试在该示例后访问Google Apps脚本中的Pingdom API: https://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
也无济于事。
知道什么可能导致错误吗?
答案 0 :(得分:4)
似乎在URL中包含登录信息会导致UrlFetchApp出错。请在我们的Issue Tracker中提交错误。同时,将登录信息放在Authorization标头中,它应该可以正常工作。
var response = UrlFetchApp.fetch(url, {
headers: {
'Authorization': 'Basic ' + Utilities.base64Encode(username + ':' + password)
}
});