2016-09-19 4 views
0

Google Script를 통해 API에 액세스하려고 시도한 결과 한 번만 요청한 후 403 번 속도 제한이 적용되었습니다 (실제로 응답이 없으므로 실제로는 0입니다). . 이는 신임장 사용 여부와 관계없이 발생합니다. cURL이나 브라우저를 통해 API에 액세스하면 API가 제대로 작동합니다. https://api.github.com/repos/moodle/moodle/compare/e7c8da0fb83c6bbd818fec967d...b5f3ed32a690e46fc0ad3b251Google Script 외부 API 액세스 403s "rate limit"

가 오류 : "잘린 서버 응답 : {"메시지 ":"API 속도 제한 107.178.195.128 초과

여기 내 요청입니다. (하지만 좋은 소식은 : 인증 된 요청은 더 높은 속도 제한을받습니다. "체크 아웃 ..."

다음 요청은 내가 제로 요청을 남긴 것을 보여줍니다. . 어쩌면

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]
율 = {{   제한 = 60
가 리셋 = 1,474,300,805 남은 = 0} ,
  리소스 = 012 3,     {코어 =      
는 {제한 = 60 = 1,474,300,805 0}
    됨 =      
는 {제한 = 10, 다시 = 나머지 리셋 = 1,474,298,088 남아 = 10} }}

답변

0

코드와 컬 (+ 브라우저) 요청의 차이점은 사용자 에이전트 문자열입니다. 코드에서 나는 지나가는 사용자 문자열을 볼 수 없습니다. 이전에 UrlFetchApp을 사용하지는 않았지만 사용자 에이전트 문자열을 지원하지 않는 것 같습니다.

다음은 사용자 에이전트없이 링크를 가져 오려고 할 때 나는 응답입니다.

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