Google Script External API Access 403s“速率限制”

时间:2016-09-19 15:19:12

标签: javascript curl google-apps-script github-api

我一直试图通过Google脚本访问API,并在一次请求后获得速率限制403(实际上为零,因为我从未在响应中获得任何信息)。无论是否使用凭据,都会发生这种情况。当我通过cURL或浏览器访问它时,API工作正常。

这是我的要求: https://api.github.com/repos/moodle/moodle/compare/e7c8da0fb83c6bbd818fec967d...b5f3ed32a690e46fc0ad3b251

错误: “截断的服务器响应:{”message“:”超出了API速率限制107.178.195.128。 (但这是好消息:经过身份验证的请求获得更高的速率限制。请查看d ...“

以下请求显示我没有留下任何请求,这没有任何意义,因为我只有五个,也许。

function myFunctionA() {
  var url = "https://api.github.com/rate_limit";    

  //var url = "https://api.github.com/repos/moodle/moodle/compare/e7c8da0fb83c6bbd818fec967d...b5f3ed32a690e46fc0ad3b251";
  var response = UrlFetchApp.fetch(url);         
  var json = response.getContentText();
  var data = JSON.parse(json);
  Logger.log(data);
}

日志

[16-09-19 10:13:48:745 CDT]
{rate =
 {limit = 60,reset = 1474300805,剩余= 0},
 资源=
    {core =
  {limit = 60,reset = 1474300805,剩余= 0},
    search =
    {limit = 10,reset = 1474298088,剩余= 10}}}

2 个答案:

答案 0 :(得分:0)

您的代码和curl(+浏览器)请求之间的区别是useragent字符串。从您的代码中我无法看到您传递的任何用户字符串。虽然之前我没有使用过UrlFetchApp,但听起来它并不支持useragent字符串。

以下是我尝试在没有任何使用者的情况下获取链接时获得的响应。

Request forbidden by administrative rules. Please make sure your request has a User-Agent header ...

答案 1 :(得分:0)

请注意,您需要专有IP。由于Google应用程序脚本使用共享的IP地址,因此您的问题仍然存在。