google-api - uris - no tienes permiso para ver claves de api clientes oauth y claves de cuenta de servicio
Cómo automatizar el inicio de sesión en la API de Google para obtener el token OAuth 2.0 para acceder a una cuenta de usuario conocida (1)
En mi aplicación, el flujo es así:
- Si no se
access_token
definidoaccess_token
, redirija al usuario a la página de Google donde concede acceso a su aplicación para acceder a sus datos de Google. Esto devuelve un código de autorización a su aplicación. - Utilice el código de autorización para obtener un
access_token
yrefresh_token
. También debe guardar el valor deexpires_in
devuelto, que le indica cuándo caduca elaccess_token
y ya no se puede utilizar. - Siempre que necesite acceder a la API, puede verificar en su base de datos si el
access_token
está vencido. Si es así, use elrefresh_token
para obtener un nuevoaccess_token
antes de acceder a la API.
No he encontrado ningún problema al hacerlo de esta manera: en lo que concierne al usuario, solo necesitan conceder acceso una vez, luego la aplicación se encarga de la autenticación desde allí.
Eso debería resolver su problema, ya que la aplicación continúa autenticándose automáticamente en función de que el usuario le otorgó acceso inicialmente a su aplicación, y no necesita hacer nada de forma manual. De hecho, no estoy seguro de que haya otra forma de hacerlo, porque para volver a realizar el proceso de OAuth, el usuario debe estar sentado frente al dispositivo para otorgar el acceso manualmente. Ese es el punto de persistir el access_token
y refresh_token
en su base de datos.
Ok, entonces esta pregunta se ha hecho antes here . En la respuesta / respuesta a la pregunta, el usuario le dice que almacene refresh_token
en la aplicación (sesión y no db, aunque no importa dónde la almacene). Después de access_token
la documentación de Google, parece que access_token
tiene una fecha de caducidad después de la cual ya no es válida. Ahora, obviamente, podríamos actualizar automáticamente el token en cada intervalo fijo o si el servicio devuelve un error de token no válido, prolongando así la vida útil del token, pero por alguna razón, este proceso manual se siente un poco complicado. Mis preguntas son:
- ¿Es esta la forma más efectiva (/ generalmente aceptada) de acceder a los datos de la aplicación / calendario de Google para una cuenta de usuario conocida al iniciar sesión manualmente y mantener el token en la aplicación? ¿O existe otro mecanismo que nos permita iniciar sesión en esta cuenta de usuario mediante programación y seguir los pasos de OAuth?