Service Account(JWT)を活用した Google Calendar API の使い方の説明
(kibua20.tistory.com)Google API を使用するための OAuth 2.0 認証方法のうち、JWT(JSON Web Token)を利用した Service Account 認証の方法と、Google Calendar API を通じてユーザーアカウントの calendar event を取得する方法を説明します。
Service Account を使用するには、以下のように 5 段階で進める必要があります。
-
Google API console で Service Account を作成:
- Service Account を作成すると、Client ID と Private Key が割り当てられます。
-
JWT(Json Web Token)を生成:
-
Header、Claim set、signature を base64urlsafe の値として encoding します。
-
Python の場合は PyJWT で JWT string を生成できます。
-
-
Google 認証サーバーで JWT を使って Token を request します。
-
Google サーバーが response として Access Token を返します。
-
Access token を使って Google API を呼び出します。
Google Calendar API で注意すべき点は、ユーザーアカウントとサービスアカウントは別個のアカウントであるため、ユーザーアカウントの Google Calendar でサービスアカウントへの共有権限を追加する必要があることです。Google Calendar API の呼び出しには、curl コマンドまたは Python requests を使用できます。
2件のコメント
うーん……実際のサービスに適用しようとするなら、ユーザーがカレンダーを共有するUXを作らないといけない気がしますが、可能なんでしょうか?
ユーザーアカウント側でカレンダーを共有する必要があるため、jwt よりも oauth2 client のほうが適しているようです。
Gmail を oauth2 で実装した例です。
https://kibua20.tistory.com/m/70