Explicación de cómo usar Google Calendar API con una Service Account (JWT)
(kibua20.tistory.com)Se explica el método de autenticación con Service account usando JWT (JSON Web Token), uno de los métodos que reciben autenticación OAuth 2.0 para usar Google API, así como la forma de obtener los eventos del calendario de una cuenta de usuario mediante Google Calendar API.
Para usar una Service Account, se debe avanzar en los siguientes 5 pasos.
-
Crear una Service Account en Google API console:
- Al crear la Service account, se asignan un Client ID y una Private Key.
-
Crear un JWT (Json Web Token):
-
Se codifican el Header, el Claim set y la signature con valores base64urlsafe.
-
En el caso de python, es posible generar un string JWT con PyJWT.
-
-
Solicitar un Token al servidor de autenticación de Google usando el JWT.
-
El servidor de Google devuelve un Access Token como respuesta.
-
Llamar a Google API usando el Access token.
Un punto importante de Google Calendar API es que la cuenta de usuario y la cuenta de servicio son cuentas separadas, por lo que se debe agregar a la cuenta de servicio el permiso de uso compartido en Google Calendar de la cuenta de usuario. La llamada a Google Calendar API puede hacerse con el comando curl o con python requests.
2 comentarios
Mmm... si se quisiera aplicar a un servicio real, parece que habría que crear una UX para que el usuario comparta el calendario; ¿será posible?
Parece que lo adecuado es un cliente
OAuth2en lugar deJWT, ya que hay que compartir el calendario desde la cuenta del usuario.Este es un ejemplo de Gmail implementado con
OAuth2.https://kibua20.tistory.com/m/70