我一直试图通过Google脚本访问API,并在一次请求后获得速率限制403(实际上为零,因为我从未在响应中获得任何信息)。无论是否使用凭据,都会发生这种情况。当我通过cURL或浏览器访问它时,API工作正常。
错误: “截断的服务器响应:{”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}}}
答案 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地址,因此您的问题仍然存在。