Google Calendar
Google CalendarをSquadbaseに接続するための手順と必要情報の取得方法
必要情報
| 項目 | 説明 |
|---|---|
| Google Cloud Service Account JSON | Googleのサービスにアクセスするための「認証キーファイル」です。Google Cloud上で発行されるJSONファイルで、どのアプリケーションがAPIを利用しているかをGoogleが識別するために使われます。 |
取得方法
Google Cloud Service Account JSON
連携用のGoogle Service Accountを発行します。
Google Service Accountとは、人間ではなくプログラムやアプリケーションなどの「システム」がGoogleのサービスを利用するための専用アカウントです。
Service Accounts を開く
Google Cloud Console にログインし、任意のプロジェクトでメニューから「IAM & Admin」→「Service Accounts」を選択してください。

サービスアカウントを作成する
Service Accounts の画面上部にある「+ Create service account」をクリックします。

サービスアカウント作成に必要な情報を入力します。
- Service account name:このサービスアカウントが何用なのか分かるように、任意の名前をつけてください。
- Service account ID:サービスアカウント名に応じて自動で入力されます。
- Service account description:任意でこのサービスアカウントの説明を追記することができます。
「Create and continue」をクリックするとサービスアカウントが作成されます。

Permissions と Principals with access については、特に設定をする必要はありません。Google Calendar 側でカレンダーの共有設定を行います。
キーを発行する
サービスアカウントの一覧から、作成したサービスアカウントのメールアドレスをクリックします。
タブから「Keys」を選択し、「Add key」→「JSON」を選択し、「作成」ボタンをクリックします。

すると、ご自身のPC上にJSONファイルがダウンロードされます。このJSONファイルをアップロードしてください。
APIを有効化する
サービスアカウントが Google Calendar のデータにアクセスできるようにするために、Google Cloud プロジェクト側で「Google Calendar API」を有効化する必要があります。
Google Cloudの左のサイドバーから「APIとサービス」→「ライブラリ」を選択し、検索窓に「Google Calendar」と入力して検索します。検索結果から「Google Calendar API」を見つけ、「有効にする」を押してください。
サービスアカウントへのアクセス権の付与
以下のいずれかの方法で、サービスアカウントに Google Calendar へのアクセス権を付与してください。
方法1:Googleカレンダーにサービスアカウントを招待する
個人の Gmail アカウントおよび Google Workspace の両方で利用できる方法です。対象のカレンダーにサービスアカウントを直接招待します。
Google カレンダー の左サイドバーで、接続したいカレンダーの横にある 三点メニュー(⋯) をクリックして 「設定と共有」 を選択します。「特定のユーザーまたはグループと共有する」 セクションの 「+ ユーザーやグループを追加」 をクリックし、サービスアカウントのメールアドレスを入力して、権限を 「すべての予定の詳細を表示する」 に設定してください。

「Make changes to events」以上の権限はデータが編集される可能性があるため、基本的には「See all event details」権限で共有することをお勧めします。
個人の Gmail アカウントをご利用の場合:追加の設定は不要です。サービスアカウントをそのまま招待できます。
Google Workspace をご利用の場合:事前に Google Workspace の管理者がカレンダーの外部共有設定を変更する必要があります。Google Workspace 管理コンソール で 「アプリ」→「Google Workspace」→「カレンダー」→「共有設定」 を開き、外部共有の設定を 「すべての情報が共有されます(外部ユーザーはカレンダーを変更できません)」 に変更してください。この設定がないと、外部ユーザーとして扱われるサービスアカウントとの共有ができません。
方法2:ドメイン全体の委任(Google Workspace)
Google Workspace を利用していて、ドメイン内のすべてのユーザーのカレンダーへのアクセスを一括で付与したい場合は、ドメイン全体の委任を使用できます。
ドメイン全体の委任には Google Workspace の管理者権限が必要です。個人の Gmail アカウントでは利用できません。
サービスアカウントのクライアント ID を取得する
Google Cloud Console で 「IAM & Admin」→「Service Accounts」 を開き、作成したサービスアカウントをクリックします。詳細ページに表示されている OAuth 2.0 クライアント ID(数字のみのID)をコピーしてください。
Google Workspace 管理コンソールでドメイン全体の委任を開く
管理者アカウントで Google Workspace 管理コンソール にログインし、「セキュリティ」→「アクセスとデータ管理」→「API の制御」 を開き、「ドメイン全体の委任を管理する」 をクリックします。
サービスアカウントを追加する
「新しく追加」 をクリックし、以下を入力します。
- クライアント ID:手順1でコピーしたクライアント ID を貼り付ける
- OAuth スコープ:
https://www.googleapis.com/auth/calendar.readonly
「承認」 をクリックします。