2 ポイント 投稿者 kibua20 2020-07-12 | 2件のコメント | WhatsAppで共有

Google API を使用するための OAuth 2.0 認証方法のうち、JWT(JSON Web Token)を利用した Service Account 認証の方法と、Google Calendar API を通じてユーザーアカウントの calendar event を取得する方法を説明します。

Service Account を使用するには、以下のように 5 段階で進める必要があります。

  1. Google API console で Service Account を作成:

    • Service Account を作成すると、Client ID と Private Key が割り当てられます。
  2. JWT(Json Web Token)を生成:

    • Header、Claim set、signature を base64urlsafe の値として encoding します。

    • Python の場合は PyJWT で JWT string を生成できます。

  3. Google 認証サーバーで JWT を使って Token を request します。

  4. Google サーバーが response として Access Token を返します。

  5. Access token を使って Google API を呼び出します。

Google Calendar API で注意すべき点は、ユーザーアカウントとサービスアカウントは別個のアカウントであるため、ユーザーアカウントの Google Calendar でサービスアカウントへの共有権限を追加する必要があることです。Google Calendar API の呼び出しには、curl コマンドまたは Python requests を使用できます。

2件のコメント

 
galadbran 2020-07-13

うーん……実際のサービスに適用しようとするなら、ユーザーがカレンダーを共有するUXを作らないといけない気がしますが、可能なんでしょうか?

 
kibua20 2020-07-13

ユーザーアカウント側でカレンダーを共有する必要があるため、jwt よりも oauth2 client のほうが適しているようです。

Gmail を oauth2 で実装した例です。

https://kibua20.tistory.com/m/70