sto lavorando con questo semplice esempio Google API:Come creare Google credenziali API OAuth oggetto da fonte alternativa
import httplib2
from apiclient.discovery import build
from oauth2client.client import flow_from_clientsecrets
from oauth2client.file import Storage
from oauth2client.tools import run
# Path to the client_secret.json file downloaded from the Developer Console
CLIENT_SECRET_FILE = 'client_secret.json'
# Check https://developers.google.com/gmail/api/auth/scopes for all available scopes
OAUTH_SCOPE = 'https://www.googleapis.com/auth/gmail.readonly'
# Location of the credentials storage file
STORAGE = Storage('gmail.storage')
# Start the OAuth flow to retrieve credentials
flow = flow_from_clientsecrets(CLIENT_SECRET_FILE, scope=OAUTH_SCOPE)
http = httplib2.Http()
# Try to retrieve credentials from storage or run the flow to generate them
credentials = STORAGE.get()
if credentials is None or credentials.invalid:
credentials = run(flow, STORAGE, http=http)
# Authorize the httplib2.Http object with our credentials
http = credentials.authorize(http)
# Build the Gmail service from discovery
gmail_service = build('gmail', 'v1', http=http)
E visto che ho già passato attraverso l'OAuth flusso in precedenza (in un diverso non-Python app) e ho i miei token di aggiornamento, ecc. Vorrei saltare la prima parte di questo esempio e creare manualmente il file di archiviazione previsto gmail.storage
o creare l'oggetto credenziali in un altro modo.
Il problema è che non riesco a trovare alcuna documentazione sul formato previsto di questo file di archiviazione o su cosa dovrebbe esserci o su come creare un'istanza dell'oggetto credenziali in un altro modo. Mi dispiace di non poter mostrare alcun lavoro qui, ma sono in perdita. Qualsiasi punto nella giusta direzione sarebbe molto apprezzato.
Ho un file account di servizio che ha i seguenti tasti: '[u'private_key ' u'private_key_id', u'token_uri', u 'auth_provider_x509_cert_url', u'auth_uri ', u'client_email', u'client_id ', u'project_id', u'type ', u'client_x509_cert_url'] ', non riesco a capire quali valori passare per' refresh_token', che Non vedo nel file JSON dell'account di servizio. –
preso a lavorare con il seguente codice (per gli account di servizio): 'da oauth2client importazione service_account service_account._JWTAccessCredentials.from_json_keyfile_dict (json.loads (service_acc_json_str))' –