Google API Authentication

XioniX

Member
Hallo zusammen,

ich bin gerade echt am verzweifeln.

Mein Ziel: Verwaltung (Events hinzufügen) meines Gmail Kalenders über ne Serverapp (soll in LUA umgesetzt werden).

Zunächst einmal stellt sich mir die Frage, ob ein API-key dazu ausreicht, oder ob ich gezwungen bin, dieses OAuth 2.0 zu verwenden. Da mir das mit API-Key einfacher erscheint, hab ich das einfach mal ausprobiert:

Also neues Projekt in Google Developer Console angelegt, Calendar-API aktiviert und API-key erzeugt. Dabei muss man ja die IP-Adresse des Servers angeben, soweit so gut.

Ausführen von

Code:
https://www.googleapis.com/calendar/v3/calendars/{meineCALid}/events?key={meinAPIkey}

ergibt vom HeimPC aus einen 403-Fehler, vom Server, dessen IP dem API-Key zugeordnet ist: 404-Fehler ???

Nach etwas Googleln auf den API-Explorer gestoßen: https://developers.google.com/apis-explorer/#p/calendar/v3/calendar.events.list

Gleiches Problem hier: 404-Fehler

Wenn ich allerdings oben rechts OAuth2.0 anschalte, so funktionniert das ohne Probleme.

Daraus folgere ich, dass ich eben OAuth2.0 benötige. Korrekt?

Grüße
 
Scheint so, als ob man keine Wahl hat:
https://developers.google.com/google-apps/calendar/auth
https://developers.google.com/google-apps/calendar/v3/reference/events/insert

In Lua hat bereits jemand ein Modul für OAuth1.0 geschrieben: https://github.com/ignacio/LuaOAuth

Ich selbst habe noch nie etwas mit der GoogleAPI gemacht, hätte aber auch keine Probleme damit, weil es von Google den Client auch in Python (Google unterstützt und nutzt Python im großen Stil) gibt. Für Lua gibt es von Google leider nichts.

Der 403er kommt dadurch zustande, da du nicht Authorisiert bist. Wahrscheinlich ist das auch der gängige Weg, wenn eine Authorisierung zuvor nicht erfolgt ist. Du nutzt doch hoffentlich die Methode POST? Verzeih mir, wenn ich so doofe Frage stelle.

PS: Schon klasse wie gut die API dokumentiert ist.
 
Heyho,

für mich wars auch das erste mal mit der Google API, aber ich habs nun soweit hinbekommen mit dem OAuth2.0 und Lua :-) Grund für Lua ist die Integration in nginx. Das läuft direkt im Webserver und ist dann einfach pfeilschnell und ich muss nicht noch nen fetten Interpreter wie perl, python oder php bemühen.

Wegen POST: der API-Befehl kann auch mit nem GET-Request ausgeführt werden. Dann listet er einfach alle Events auf, anstatt dass er nen Event einträgt.

Grüßle
 
Schick.
Wusste ich gar nicht, dass Nginx Lua unterstützt.

Mit insert als get request bekommst du die Events?
Wäre eigentlich das falsche Verhalten von der API. Du willst ja klar trennen zwischen Daten senden und Daten empfangen. Viele machen es bei Webanwendungen falsch und lassen es zu, dass Daten durch get geändert werden.
 
Naja, nicht im core, aber mit einem Lua Modul (https://github.com/chaoslawful/lua-nginx-module).

Das mit dem insert kommt von dir :-P Der dazugehörige Request enthält allerdings kein insert mehr.

Code:
POST https://www.googleapis.com/calendar/v3/calendars/{meineCALid}/events
==>insert event

Code:
GET https://www.googleapis.com/calendar/v3/calendars/{meineCALid}/events
==>get event list
 
Danke für den Hinweis, LuaJIT hab ich bereits im Einsatz, das mit dem Profiling ist interessant. >3000 Request/Sekunde reichen mir aber erst mal :-)
 
Back
Top