Ich kann quickstart.py für Google Drive mit Python ausführen. Aber wie speichern wir das Token und verwenden es erneut - erneut für denselben Benutzer, ohne den Benutzer zu fragen. Ist eine Art, wie ich Benutzer mit Zugriffs-Token zuordnen kann, wenn Sie eine Anfrage für eine Datei auf Google-Laufwerk senden.Zugriffstoken von Google OAuth 2.0 speichern, um auf Laufwerkdaten aus dem Anwendungskonto zuzugreifen
5
A
Antwort
8
Es gibt viele verschiedene Arten von Storage
google-api-python-client
angeboten, some davon welldocumented sind.
Einige Beispiele:
oauth2client.file.Storage:
from oauth2client.file import Storage
...
storage = Storage('a_credentials_file')
storage.put(credentials)
...
credentials = storage.get()
oauth2client.keyring_storage.Storage:
from oauth2client.keyring_storage import Storage
...
storage = Storage('application name', 'user name')
storage.put(credentials)
...
credentials = storage.get()
oauth2client.appengine.StorageByKeyName:
from oauth2client.keyring_storage import StorageByKeyName
from oauth2client.keyring_storage import CredentialsNDBModel
...
storage = StorageByKeyName(CredentialsNDBModel, some_user_id, 'credentials')
storage.put(credentials)
...
credentials = storage.get()
oauth2client.django_orm.Storage:
from django.contrib.auth.models import User
from oauth2client.django_orm import Storage
from your_project.your_app.models import CredentialsModel
...
user = # A User object usually obtained from request.
storage = Storage(CredentialsModel, 'id', user, 'credential')
credential = storage.get()
...
storage.put(credential)
3
Ich denke, Sie sollten Kredit für eine vollständige Antwort auf bossylobster geben, aber basierend auf Ihren Kommentar, die meine genau aufgebaut ist, habe ich die quickstart.py mit der Augmented Storage-Klasse:
#!/usr/bin/python
import httplib2
import pprint
from apiclient.discovery import build
from apiclient.http import MediaFileUpload
from oauth2client.client import OAuth2WebServerFlow
from oauth2client.file import Storage
# Copy your credentials from the console
CLIENT_ID = 'PASTE_YOUR_ID'
CLIENT_SECRET = 'PASTE_YOUR_SECRET'
# Check https://developers.google.com/drive/scopes for all available scopes
OAUTH_SCOPE = 'https://www.googleapis.com/auth/drive'
# Redirect URI for installed apps
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'
# Create a credential storage object. You pick the filename.
storage = Storage('a_credentials_file')
# Attempt to load existing credentials. Null is returned if it fails.
credentials = storage.get()
# Only attempt to get new credentials if the load failed.
if not credentials:
# Run through the OAuth flow and retrieve credentials
flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI)
authorize_url = flow.step1_get_authorize_url()
print 'Go to the following link in your browser: ' + authorize_url
code = raw_input('Enter verification code: ').strip()
credentials = flow.step2_exchange(code)
storage.put(credentials)
# Create an httplib2.Http object and authorize it with our credentials
http = httplib2.Http()
http = credentials.authorize(http)
drive_service = build('drive', 'v2', http=http)
# Use 'drive_service' for all of the API calls
Verwandte Themen
- 1. Failing OAuth 2.0 Zugriffstoken auf Android-Emulator
- 2. Stormpath OAuth-Zugriffstoken auf Cookie
- 3. Google Oauth 2.0 minimale Benutzerinteraktion
- 4. Get OAuth 2.0 Zugriffstoken von asp.net Webforms iframe Leinwand Anwendung
- 5. Verwenden von Facebook OAuth 2.0 - Wie hole ich das Zugriffstoken?
- 6. Google OAuth - wie man Zugriffstoken wieder verwendet
- 7. Google OAuth 2.0 inkrementelle Autorisierung funktioniert nicht
- 8. Kann ein OAuth 2.0-Zugriffstoken ein JWT sein?
- 9. Zugriffstoken von OAuth 2.0 nicht erhalten. Berechtigungscode-Ablauf
- 10. Google Identity Toolkit Verbundanmeldung und OAuth-Zugriffstoken
- 11. Google OAuth 2.0 auf serverseitige Anwendung
- 12. Google OAuth 2.0 SAMEORIGIN Fehler
- 13. Google Drive-API OAuth 2.0; Fehler: Herkunft_Mismatch
- 14. Google voice PHP OAuth 2.0
- 15. OAuth 2.0. Keine Sitzung? (Stateless)
- 16. OAuth - Zugriffstoken-Ablaufzeitraum?
- 17. Sicher Weg, um REST Oauth 2.0 API von Javascript
- 18. Wie setze ich Google OAuth 2.0 Autorisierung zurück?
- 19. Inwieweit unterstützen die Google OAuth 2.0-APIs RFC7636?
- 20. Was OpenID Connect zu OAuth 2.0 hinzufügt (warum ist OAuth 2.0 nicht ausreichend für die Authentifizierung?)
- 21. Google OAuth 2.0 include_granted_scopes funktioniert nicht für installierte App
- 22. Google oAuth ungültig Token Zeichenfolge nach dem Abmelden von Google
- 23. Login auf Single-Seite Anwendung mit Google-Authentifizierung und Google Oauth 2.0
- 24. Enthalten OAuth-Zugriffstoken Rollen wie JWT-Token
- 25. OAuth 2.0 (Google API) Authentifizierung von einer WPF-Desktop-Anwendung?
- 26. Wie erhält man Google OAuth 2.0 Access Token direkt mit curl? (ohne Verwendung von Google-Bibliotheken)
- 27. Anforderungs- und Zugriffstoken in OAUTH
- 28. Android Misfit API OAuth 2: Wie Zugriffstoken
- 29. Google API OAuth 2.0 Titanium: Erforderlicher Parameter fehlt: response_type
- 30. So erneuern Sie das Zugriffstoken mit dem OAuth-Aktualisierungstoken?
Ich arbeite nicht auf Google App Engine Das Skript soll auf dem Server laufen einige Dateien lesen und Datenbank basierend auf Daten in diesen Dateien zu füllen. Ich möchte es nur zum ersten Mal konfigurieren, dh Link-Browser einfügen dann authorized Code, Einfügen es zurück zum Terminal .Data wird immer von der gleichen Benutzer-ID lesen.Nach dat selbst wenn Skript stoppt, wenn ich neu starten sollte es aus dem Speicher lesen um es zu tun. – Navi