2013-03-19 13 views

Odpowiedz

8

Istnieje wiele różnych rodzajów oferowanych przez Storagegoogle-api-python-client, z których somewelldocumented.

Przykłady:

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) 
+0

Nie pracuję na Google App Engine Skrypt powinien działać na serwerze odczytać niektóre pliki i wypełnić bazę danych na podstawie danych w tych plikach. Chcę go najpierw skonfigurować, tj. Wkleić link do przeglądarki, a następnie uzyskać autoryzowany kod, wklejając go z powrotem do terminala. Dane zawsze będą czytać z tego samego identyfikatora użytkownika. Po danych, nawet jeśli skrypt się zatrzyma, po ponownym uruchomieniu powinien odczytać z pamięci. zrobić to. – Navi

3

myślę, że należy dać kredyt bossylobster dla pełniejszej odpowiedzi, ale na podstawie Twojego komentarza, który jest właśnie mój setup, mam powiększone o quickstart.py używając Klasa składowania:

#!/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 
Powiązane problemy