Explication de l’utilisation de l’API Google Calendar avec un Service Account (JWT)
(kibua20.tistory.com)Cette explication présente la méthode d’authentification par Service Account utilisant JWT (JSON Web Token), l’une des méthodes d’authentification OAuth 2.0 pour utiliser les API Google, ainsi que la façon de récupérer les événements de calendrier d’un compte utilisateur via l’API Google Calendar.
Pour utiliser un Service Account, il faut suivre les 5 étapes ci-dessous.
-
Créer un Service Account dans la Google API Console :
- Lors de la création du Service Account, un Client ID et une Private Key sont attribués.
2, Créer un JWT (Json Web Token) :
-
Encoder le Header, le Claim set et la signature en valeurs base64urlsafe.
-
En Python, il est possible de générer la chaîne JWT avec PyJWT.
-
Demander un token au serveur d’authentification Google en utilisant le JWT.
-
Le serveur Google renvoie un Access Token en réponse.
-
Appeler l’API Google à l’aide de l’Access Token.
Point important avec l’API Google Calendar : le compte utilisateur et le compte de service sont des comptes distincts, il faut donc ajouter l’autorisation de partage du compte de service dans le Google Calendar du compte utilisateur. Les appels à l’API Google Calendar peuvent être effectués avec la commande curl ou avec python requests.
2 commentaires
Hum… si on veut l’appliquer à un vrai service, il faudrait sans doute créer une UX où l’utilisateur partage son calendrier. Mais est-ce que c’est seulement faisable ?
Comme il faut partager le calendrier depuis le compte utilisateur, il semble qu’un client OAuth2 soit plus approprié que JWT.
Voici un exemple d’implémentation de Gmail avec OAuth2.
https://kibua20.tistory.com/m/70