2016-05-11 4 views
0

Ich verwende Google Kalender API mit Python. Ich habe ein Dienstkonto erstellt und verwende den privaten Schlüssel, um von meinem Server aus eine Verbindung zur Kalender-API herzustellen.4XX-Fehler von Google Kalender-API Anruflimit erhalten

Alles hat gut funktioniert. Ich

Gestern begann die Störung zu erhalten:

{ 
"error": { 
    "errors": [ 
    { 
    "domain": "usageLimits", 
    "reason": "dailyLimitExceededUnreg", 
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup.", 
    "extendedHelp": "https://code.google.com/apis/console" 
    } 
    ], 
    "code": 403, 
    "message": "Daily Limit for Unauthenticated Use Exceeded. Continued use requires signup." 
} 
} 

Wenn ich in der Konsole anmelden meine Grenzen sind:

Tages Quoten zurückgesetzt um Mitternacht Pacific Time (PT).

Abfragen

Anfragen/Tag 114 von 1.000.000
Anfragen/100 Sekunden/user 500

Die Konsole zeigt mir richtig, dass ich 4XX- Fehler am Schlagen und jeder Treffer erhöht den Fehlerzähler, aber ich bin nicht sicher, wie das zu beheben

Hat jemand eine Idee, wo ich anfangen könnte zu suchen?

Unter meinem Code verwende ich

with open(os.path.dirname(os.path.abspath(__file__)) + "/KeyName.p12") as f: 
     private_key = f.read() 

     credentials = SignedJwtAssertionCredentials(client_email, private_key, 
       scope=['https://www.googleapis.com/auth/calendar', 'https://www.googleapis.com/auth/calendar.readonly']) 

     http = Http() 
     credentials.authorize(http) 
     service = build(serviceName='calendar', version='v3', http=http) 

     today_beginning = datetime.combine(date.today(), time()) 
     today_end = today_beginning + timedelta(1, 0) - timedelta(0, 1) 

     now = datetime.now().isoformat() 
     timeMin = today_beginning.isoformat() + 'Z' 
     timeMax = today_end.isoformat() + 'Z' 

     # events 
     events = service.events().list(calendarId=calendar_id, timeMin=timeMin, timeMax=timeMax).execute() 

In diesem Stadium verbinden es mit

Erhöhung brechen httperror (bzw., Inhalt, uri = self.uri) googleapiclient.errors.HttpError: https: //www.googleapis.com/calendar/v3/calendars/.../hidden/parts/ .. zurückgegeben "Not Found"> ​​

Unten ist ein Bild, das meine Anforderungen in den letzten 30 Tagen zeigt, werden Sie sehen, wo zu 200 fallen und die 4xx beginnen

Google API requests graph

UPDATE: ich einige Änderungen mit begrenztem Erfolg

ich den Code auf die folgende

geändert
scopes = ['https://www.googleapis.com/auth/calendar.readonly'] 
# p12 keyfile 
# keyfile = os.path.dirname(os.path.abspath(__file__)) + "/" + p12_key 
# credentials = ServiceAccountCredentials.from_p12_keyfile(client_email, keyfile, 'notasecret', scopes) 

# json keyfile 
keyfile = os.path.dirname(os.path.abspath(__file__)) + "/" + json_key 
credentials = ServiceAccountCredentials.from_json_keyfile_name(keyfile, scopes) 

http_auth = credentials.authorize(Http()) 
service = build(serviceName='calendar', version='v3', http=http_auth) 

today_beginning = datetime.combine(date.today(), time()) 
today_end = today_beginning + timedelta(1, 0) - timedelta(0, 1) 

now = datetime.now().isoformat() 
timeMin = today_beginning.isoformat() + 'Z' 
timeMax = today_end.isoformat() + 'Z' 

# events 
events = service.events().list(calendarId=calendar_id, timeMin=timeMin, timeMax=timeMax).execute() 

Dieser Code die neuesten Änderungen aus der Dokumentation spiegelt

gemacht haben

Ich habe versucht, mit JSON & ein P12-Zertifikat zu authentifizieren

Der Fehler blieb weiterhin bestehen. Ich erstellte ein weiteres Dienstkonto mit neuen Anmeldeinformationen, json + p12, und der Fehler blieb weiterhin bestehen. Ich habe neue Kalender erstellt, der Fehler bleibt bestehen.

Ich erstellte dann ein Dienstkonto auf einem anderen Google-Konto, das ich habe, erstellte die Kalender neu und erstellte neue An-Meldeinformation für dieses Dienstkonto. Das hat es wieder funktioniert.

Das lässt mich denken, dass etwas mit den Konten passiert?

Das Konto, bei dem der Fehler auftritt, ist eine bezahlte Google Apps für Business-Konto.Ich werde ein Ticket mit diesem Konto anmelden und melden

Antwort

0

Sie können in diesem documentation, den gleichen Fehler, den Sie aufgetreten sind. Die vorgeschlagene Maßnahme ist auf diese page gerichtet.

Die Google Kalender-API hat ein Limit von 1.000.000 Abfragen pro Tag.

Wenn Sie die Abrechnung für Ihr Projekt aktiviert haben, können Sie den Kontingentanteil für jede API sehen. Sie können Kontingente über die API-Bereiche API-Bibliothek und Enabled-APIs anzeigen und ändern. Wenn Sie eine API aus der API-Bibliothek oder aus der Enabled APIs Seite auswählen, gelangen Sie auf eine Seite mit Übersichts-, Verwendungs- und Kontingentlinks für diese API. Bei Auswahl von Kontingente können Sie kontingentbezogene Einstellungen anzeigen und ändern. Wählen Sie Usage bietet Ihnen Nutzungsstatistiken sowie Antwortcode und Methodeninformationen.

Versuchen Sie dem ersten Teil der Antwort here über das Google APIs-Konsolenprojekt zu folgen.

Überprüfen Sie auch dieses Problem über INTEGRATION WITH GOOGLE CALENDAR API.

0

Nach Protokolle analysieren, fand ich

unterhalb der Grenzwerte für erstellen

kostenlose Google Apps-Konto Für einen Benutzer: Zunächst: 100 Extenal Gäste Domains E-Mails begrenzen Accumulative: 1 External Gast für 40 Minuten

Beispiel: Wenn Sie eine frische haben Token können Sie einen beliebigen senden *. 50 Events mit 100 Gästen - 2 Gäste pro Event *. 25 Veranstaltungen mit 100 Gästen - 4 Gäste pro Veranstaltung

Limits pro Tag: 36 Gäste Woche: 252 Gäste Monat: ~ 1080 Gäste

Kaufort GSuite Kalender API Anfangsgrenze von 1000 Gast anfordern gibt

https://github.com/manjeshpv/gsuite-google-calendar-api-limits

Verwandte Themen