【问题标题】:Unexpected error on UrlFetchApp.fetch in Google Apps scriptGoogle Apps 脚本中 UrlFetchApp.fetch 出现意外错误
【发布时间】:2013-05-27 12:54:08
【问题描述】:

我正在尝试按照该示例访问 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 获得“缺少应用程序密钥”,它确认正确提供的用户名和密码,否则您会收到 Invalid Credentials 错误)。我在credentials 上尝试了使用和不使用encodeURIComponent,我得到了同样的错误。 'muteHttpExceptions':true 也无济于事。

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

【问题讨论】:

    标签: javascript google-apps-script pingdom


    【解决方案1】:

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

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

    【讨论】:

    • 已提出问题 (code.google.com/p/google-apps-script-issues/issues/…)。不幸的是,PingdomHTTP Basic 的实现似乎很差:使用 curl 进行测试,当在 URL 中提供凭据时有效,当通过 Authorization 标头提供时,API 返回 @987654329 @ 错误(因此我无法使用 Google Apps 脚本,因为我无法使用 URL 中的凭据)。
    【解决方案2】:

    我在尝试访问 Google Apps 脚本中的 Gitlab API 时遇到了类似的问题。如接受的答案中所述,在 URL 中包含登录信息会导致错误。接受的答案中的基本授权方法在 Google Apps 脚本中也不适用于我。将授权标头修改为“Bearer”类型就可以了。

    var url = "https://gitlab.com/api/v4/projects/" + projectId;
    var options = {
      'headers' : {Authorization: 'Bearer ' + token}
    };
    var response = UrlFetchApp.fetch(url, options);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多