2017-03-15 2 views
0

Gibt es eine Möglichkeit, ein Authentifizierungs-Token für Drive REST-APIs zu generieren oder zu erhalten?Langzeit-Authentifizierungstoken für Drive REST-APIs

Ich bin an reinen REST-API-Aufrufen (keine SDKs) für ein Server-zu-Server-Szenario für die Kommunikation mit einem einzelnen Laufwerk interessiert (kein Zugriff auf die Laufwerke der Benutzer). Wenn ich nicht etwas verpasst haben, wird dies unterstützt: https://developers.google.com/identity/protocols/OAuth2ServiceAccount

jedoch der erzeugte Zugriffstoken für eine Stunde gültig ist, was ich denke, ist schon eine Overhead.

Für ähnliche Funktionalität bietet Dropbox Long-Life-Access-Token. Ist das irgendwie mit Drive möglich?

Antwort

1

Ja. Es ist alles ganz einfach. Es ist alles in der Terminologie.

Um auf eine Ressource zugreifen zu können, benötigt Ihre App einen Access Token. Diese laufen immer nach 60 Minuten ab (Google behält sich jedoch das Recht vor, dies in Zukunft zu ändern). Wenn Sie ein Access Token erwerben, wird es mit seiner Ablaufzeit kommen.

Um ein Access Token zu erhalten, kann Ihre App zunächst ein langlebiges Refresh Token anfordern. Ein Refresh-Token ist (fast) unaufhörlich, obwohl Ereignisse wie die Änderung des Passworts durch den Benutzer dazu führen, dass es abläuft. Ihre App kann das Aktualisierungstoken an einen Endpunkt senden, der Ihnen ohne Benutzereingriff einen Zugriffstoken zurückgibt.

Ich habe die Schritte buchstabiert bei How do I authorise an app (web or installed) without user intervention? (canonical ?)

Ein alternativer Ansatz ist ein Dienstkonto zu erstellen, die ein Konto „besessen“ von der App ist. Ihre App kann dann die zweibeinige Authentifizierung verwenden, um Zugriff zu gewähren. Siehe https://developers.google.com/identity/protocols/OAuth2ServiceAccount

+0

Großartig, vielen Dank! Das scheint genau das zu sein, was ich brauche! Wo kann ich Schritt 3 konfigurieren? Legen Sie https://developers.google.com/oauthplayground als Rückruf-URL fest? Das Video scheint etwas veraltet zu sein. – MerlinBG

+0

https://console.developers.google.com/apis/credentials/oauthclient?project=XXXXXXX Wobei XXXXXX der Name des registrierten Projekts ist oder starten Sie einfach unter https://console.developers.google.com/apis und gehen Sie von Dort. Ich werde die verknüpfte Antwort mit den aktualisierten URLs aktualisieren – pinoyyid

+0

Gefunden es :) Awesomeness !! Vielen Dank! – MerlinBG