2016-09-19 4 views
0

Ich habe versucht, über ein Google Script auf die API zuzugreifen und nach nur einer Anfrage ein Ratenlimit von 403 zu erhalten (eigentlich null, da ich in der Antwort nie Informationen erhalte) . Dies geschieht mit und ohne Verwendung von Anmeldeinformationen. Die API funktioniert einwandfrei, wenn ich über cURL oder den Browser darauf zugreife.Google Script Externer API-Zugriff 403s "Ratenbegrenzung"

Hier ist meine Anfrage: https://api.github.com/repos/moodle/moodle/compare/e7c8da0fb83c6bbd818fec967d...b5f3ed32a690e46fc0ad3b251

Der Fehler: "Verkürzte Server-Antwort: {" message ":" API Limit für 107.178.195.128 überschritten. (Aber hier ist die gute Nachricht: Authentifizierte Anfragen erhalten eine höhere Rate ... "

Die folgende Anfrage zeigt, dass ich Null Anfragen übrig habe, was keinen Sinn macht, da ich nur fünf gemacht habe, . vielleicht

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); 
} 

Logs

[16-09-19 10: 13: 48: 745 CDT]
{rate =
  limit = {60, Reset = 1474300805, verbleibende = 0} ,
  Ressourcen =
    {core =
      {limit = 60, Reset = 1474300805, verbleibende = 0},
    search =
      {limit = 10, Reset = 1474298088, verbleibende = 10} }}

Antwort

0

Der Unterschied zwischen Ihrem Code und curl (+ Browser) Anfrage ist die Useragent String. Aus Ihrem Code kann ich keine Benutzerzeichenfolge sehen, die Sie übergeben. Obwohl ich UrlFetchApp vorher nicht verwendet habe, aber es klingt, als ob es keine useragent Zeichenkette unterstützt.

Hier ist die Antwort, die ich bekomme, wenn ich versuche, den Link ohne Useragent abzurufen.

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