2 pontos por kibua20 2020-07-12 | 2 comentários | Compartilhar no WhatsApp

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.

  1. Criar uma Service Account no Google API console:

    • Ao criar a Service Account, são atribuídos um Client ID e uma Private Key.
  2. 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.

  3. Solicitar um Token ao servidor de autenticação do Google usando o JWT.

  4. O servidor do Google retorna um Access Token como resposta.

  5. 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

 
galadbran 2020-07-13

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?

 
kibua20 2020-07-13

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