Explicação de como usar a Google Calendar API com Service Account (JWT)
(kibua20.tistory.com)Explica o método de autenticação com Service Account usando JWT (JSON Web Token), uma das formas de obter autenticação OAuth 2.0 para usar a Google API, e como obter os eventos de calendário da conta de um usuário por meio da Google Calendar API.
Para usar uma Service Account, é necessário seguir as 5 etapas abaixo.
-
Criar uma Service Account no Google API console:
- Ao criar a Service Account, são atribuídos um Client ID e uma Private Key.
-
Gerar um JWT (Json Web Token):
-
Fazer o encoding do Header, Claim set e signature em valores base64urlsafe.
-
No caso de Python, é possível gerar a string JWT com PyJWT.
-
-
Solicitar um Token ao servidor de autenticação do Google usando o JWT.
-
O servidor do Google retorna um Access Token como resposta.
-
Chamar a Google API usando o Access Token.
Um ponto de atenção da Google Calendar API é que a conta do usuário e a conta de serviço são contas separadas, portanto é necessário adicionar à conta de serviço a permissão de compartilhamento no Google Calendar da conta do usuário. A chamada da Google Calendar API pode ser feita com o comando curl ou usando python requests.
2 comentários
Hum... se fosse para aplicar isso em um serviço real, acho que seria preciso criar uma UX para o usuário compartilhar o calendário. Será que isso seria possível?
Como é necessário compartilhar o calendário a partir da conta do usuário, parece que um cliente OAuth2 é mais adequado do que JWT.
Este é um exemplo de implementação do Gmail com OAuth2.
https://kibua20.tistory.com/m/70