sirve read que para google python google-api gmail-api

python - read - para que sirve la api de gmail



Error API de inicio rĂ¡pido de Google API KeyError: ''_module'' (4)

Utilizando la API de Gmail. El archivo secreto de mi cliente está descargado y trabajando para Ruby. Cuando intento la versión quickstart.py (python) recibo este error

File "quickstart.py", line 70, in <module> main() File "quickstart.py", line 55, in main credentials = get_credentials() File "quickstart.py", line 38, in get_credentials credentials = store.get() File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 374, in get return self.locked_get() File "/Library/Python/2.7/site-packages/oauth2client/file.py", line 79, in locked_get credentials = Credentials.new_from_json(content) File "/Library/Python/2.7/site-packages/oauth2client/client.py", line 281, in new_from_json module = data[''_module''] KeyError: ''_module''

No he cambiado el archivo en absoluto, solo agregué client_secret.json a ese directorio de trabajo y también instalé google-api-python-client. Mi código de Python vino de aquí: https://developers.google.com/gmail/api/quickstart/python


Estoy aprendiendo Python y tuve un problema similar, pero con el ejemplo de la API de calendario . Resultó que era un error tipográfico con respecto al SCOPE.

## Typo - Invalid definition SCOPES = ''https://ww.googleapies.com/auth/calendar.readonly'' ## Correct Value for SCOPE SCOPES = ''https://www.googleapis.com/auth/calendar''

Además, la respuesta de Matt me ayudó a señalar la dirección correcta. Gmail-quickstart.json no es lo mismo que client_secret.json. Client_secret.json le permite realizar una solicitud de un token OAuth2. Mientras que gmail-quickstart.json contiene el token emitido y los metadatos asociados con él. Gmail-quickstart.json no se crea hasta que inicie sesión correctamente.

Una última idea, para iniciar sesión correctamente, la aplicación quickstart.py lanzó una instancia de mi navegador web (Firefox) y se dirigió a la pantalla de inicio de sesión de Google. Para que Firefox se ejecute correctamente, primero tuve que configurar mi variable DISPLAY correctamente.

$ export DISPLAY=:0 $ xhost + access control disabled, clients can connect from any host


Intente reemplazar creds = store.get() con creds = None temporalmente. Si esto funciona, puede refactorizar su código para que siempre comience con la creación de instancias de credenciales basadas en flujos. Esto funcionó para mí. Parece que las muestras de Google no están sincronizadas con su outh2client.


Resolví esto moviendo client_secret.json al mismo directorio que el archivo py que está intentando leerlo (quickstart.py), el mío estaba en el escritorio mientras había guardado el json en Documentos. Guardé el json en el escritorio también y muchacho, ¡voló !.

No sé por qué no funciona cuando están en directorios diferentes, la definición de una credential_path personalizada no ayuda.


outh2client está intentando cargar credenciales de un archivo json con una estructura incorrecta.

Tal vez el cliente Ruby usa un formato de archivo diferente pero me sorprendería. ¿Está seguro de que no guardó client_secret.json como ~/.credentials/gmail-quickstart.json accidente?

En cualquier caso, si se elimina ~/.credentials/gmail-quickstart.json y se vuelve a autenticar, se generará un nuevo archivo de credenciales con la estructura correcta.