2013-08-21 3 views
6

Sto seguendo questo esempioOttenere AccessTokenRefreshError: invalid_grant in Google API fro account di servizio

https://code.google.com/p/google-api-python-client/source/browse/samples/service_account/tasks.py

credentials = SignedJwtAssertionCredentials(
     '[email protected]', 
     key, 
     scope='https://www.googleapis.com/auth/tasks') 
    http = httplib2.Http() 
    http = credentials.authorize(http) 

    service = build("tasks", "v1", http=http) 

    # List all the tasklists for the account. 
    lists = service.tasklists().list().execute(http=http) 
    pprint.pprint(lists) 

Il problema è che a volte funziona e ottengo le liste come JSON e dopo il programma po 'di più in esecuzione volte ricevo l'errore

File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 710, in _do_refresh_request 
    raise AccessTokenRefreshError(error_msg) 
oauth2client.client.AccessTokenRefreshError: invalid_grant 

risposta

0

Sono interfaccia di Google Drive ma ho trovato lo stesso errore. In Issue 160 c'è un rapporto sull'impostazione dell'ora appropriata sul tuo computer locale. Da quando ho aggiornato Mac Mavericks ho scoperto che ho bisogno di continuare ad aggiornare il mio tempo di sistema. Stavo ricevendo il tuo errore segnalato, ho riportato il mio tempo al sistema attuale e ho eliminato l'errore.

0

Si sta eseguendo questo codice in un ambiente VM o in modalità sandbox? In tal caso, potrebbe essere solo che l'orologio della tua VM non è sincronizzato con la tua macchina host. Vedere una risposta a una domanda simile here.

ho sofferto lo stesso problema (frustrante) e ha scoperto che semplicemente riavviando il mio VM (garantire il tempo è stato sincronizzato alla macchina host (o almeno impostato sul fuso orario locale) ha risolto il problema.

0

servizio Oauth è dipende in larga misura il tempo, assicurarsi che il client utilizza NTP o un altro meccanismo di sincronizzazione tempo

test con l'arricciatura -I https://docs.google.com/; data -u

Si dovrebbe vedere la stessa data:. (o whithin pochi secondi) per farlo funzionare