はじめに
kintoneアプリのイベント・フェアカレンダーを利用して、イベントの日程をGoogleカレンダーに連携します。
有料のGoogle WorkspaceのGoogleカレンダーの場合、社内でイベントの日程を管理し、承認後に社内でカレンダー日程をセキュアに共有したい場合などに利用できます。
また、設定で一般公開すれば、社外にもEメール等でイベントの告知とカレンダー日程の同期が可能になります。
事前に必要なもの
- Googleアカウント
- kintoneアカウント
開発の流れ
以上の手順で開発していきます。
1. Googleカレンダーの作成・設定
ステップ1
Google.com
よりログインし、Googleカレンダーを開きます。
左サイドメニューの他のカレンダーの右側の「+」をクリックして、「新しいカレンダーを作成」を選択します。
カレンダー名を入力し、「カレンダーを作成」ボタンをクリックし、カレンダーを作成します。
次に左メニューより、新しく作成されたカレンダーのオーバーフローメニューより、「設定と共有」を選択します。
下にスクロールすると、「カレンダーの統合」の項目内に「カレンダーID」が表示されているので、メモしておきます。
後のプログラミングで必要です。
ステップ2
次にGoogle APIを利用するためにGoogleカレンダーAPIの認証情報を設定します。
まず、
Google Cloudのデベロッパーコンソール
にログインします。
「選択中のプロジェクト」>「新しいプロジェクト」をクリックします。
プロジェクト名を入力し、「作成」ボタンをクリックすると、新規プロジェクトが作成されます。
ステップ3
「APIとサービス」>「APIとサービスを有効にする」をクリックして、「APIライブラリ」設定画面へ移行します。
検索ボックスでGoogle Calendar APIと入力し、「Google Calendar API」を選択します。
「有効にする」をクリックして、Google Calendar APIを有効にします。
ステップ4
「認証情報の作成」をクリックします。
続いて、下記を選択します。
- 使用するAPI:Google Calendar API
- アクセスするデータの種類:ユーザーデータ
入力したら「次へ」をクリックします。
ステップ5
OAuth同意画面にて、「アプリ名」、「ユーザーサポートメール」、「デベロッパーの連絡先情報」を入力します。
入力したら「保存して次へ」をクリックします。
「スコープを追加または削除」>「Google Calendar API」を選択し、「更新」をクリックします。
内容を確認して「保存して次へ」をクリックします。
ステップ6
「OAuthクライアントID」>「アプリケーションの種類」で「ウェブアプリケーション」を選択し、任意の名前を入力します。
続いて、下記を入力します。
- 承認済みのJavaScript生成元:kintoneのURL(例:
https://sample.cybozu.com) - 承認済みのリダイレクトURL:kintoneアプリのURL(例:
https://sample.cybozu.com/k/{アプリケーションID}/)
kintoneアプリは後で作成します。
最後に「作成」をクリックすると、「クライアントID」が生成されるのでメモしておきます。
後のカスタマイズのプログラミングで使用します。
「完了」ボタンをクリックして終了します。
ステップ7
「認証情報」>「認証情報を作成」から、「APIキー」を選択します。
APIキーが作成されるので、メモしておきます。
後のカスタマイズのプログラミングで使用します。
補足
「キーの制限」の設定をすることにより、キーの不正仕様や盗用を防止できます。必要に応じて設定してください。
詳細は、
Google Cloudのドキュメント:APIキーを管理
を参照してください。
ステップ8
「OAuth同意画面」>「対象」からテストユーザーを追加します。
ちなみに、画面上部の「アプリを公開」をクリックするとGoogleアカウントをもつすべてのユーザーがアプリを使用できるようになります。
以上でGoogleカレンダー側の設定は終了です。
2. kintoneアプリの設定・変更
ステップ1
今回は、kintoneアプリの「イベント・フェアカレンダー」を元にアプリを設定・変更します。
kintoneアプリストアより、「イベント・フェアカレンダー」を追加します。
ステップ2
アプリの設定画面から、下記テーブルを参考にしてフィールドを追加・変更します。
| フィールドの種類 | フィールド名 | フィールドコード |
|---|---|---|
| 日付 | 開催日 | event_date |
| 文字列(1行) | イベント名 | event_name |
| 日時 | 開催日時 | start_datetime |
| 日時 | 終了日時 | end_datetime |
| 文字列(複数行) | 開催場所 | event_location |
| 文字列(複数行) | イベント詳細 | event_description |
| スペース | − | publish_button_space |
| 文字列(1行) | GoogleイベントID | event_id |
フィールドの設定・変更後、「フォームを保存」し、最後に「アプリを更新」します。
これで、kintoneアプリの設定は終了です。
3. JavaScriptによるプログラムの作成
サンプルコードを参考にプログラムを作成します。
次の3つの変数には、
Googleカレンダーの作成・設定
で取得した値を入れてください。
api_key:Google APIキーclient_id:クライアントIDcalendar_id:カレンダーID
サンプルコード
|
|
コードのアップロード
作成したコードに適当な名前をつけ、保存します。(例:googleCalendar.js)
保存したコードを「アプリの設定」から、「JavaScript/CSSでカスタマイズ」を選択し、アップロードします。
また、Googleの認証用ライブラリと、APIクライアントライブラリを以下のURLを指定して参照します。
https://accounts.google.com/gsi/clienthttps://apis.google.com/js/api.js
設定を「保存」して、「アプリを更新」します。
4. 動作の確認
上記で作成したイベント・フェアカレンダーのアプリを開き、イベント情報を入力して、「保存」します。
保存後、「公開する」ボタンをクリックするとGoogleアカウントへの認証画面が表示されるので、使用するアカウントをクリックします。
認証に成功すると登録したイベントがGoogleカレンダーに公開され、GoogleイベントIDが設定されます。
Googleカレンダーを確認するとイベント情報が登録されています。
プログラムの解説
Google API認証情報の設定
Googleカレンダーの作成・設定 で取得した値を変数にセットします。
api_key:Google APIキーclient_id:クライアントIDcalendar_id:カレンダーID
|
|
スコープとディスカバリードックの情報の詳細は
Google Calendar APIの概要
を参照してください。
Google APIクライアントとOAuth2.0ライブラリ
Google APIのJavaScriptクライアントとOAuth 2.0ライブラリを読み込み、ロード完了後に初期化処理を実行しています。
|
|
JavaScriptクライアントとOAuth 2.0の認証情報の詳細に関しましては、
クライアントサイド ウェブ アプリケーション用の OAuth 2.0
を参照してください。
レコード詳細画面の表示後イベント
レコード詳細画面の表示後イベントは以下の関数内に記述します。
|
|
Googleカレンダーにイベントを公開するためのボタンを画面下部スペースに設置します。
|
|
レコード追加時、編集時の表示後イベント
GoogleカレンダーのイベントIDは自動設定されるので、レコード追加時および編集時には編集できないように設定しています。
|
|
Googleカレンダーへのイベント公開
まずは、イベント・フェアカレンダーで設定したレコードのデータを取得します。
レコード取得後、Googleアカウントへ認証済みかどうかをチェックし、認証済みでない場合は、Google認証画面を呼び出します。
Google APIへの認証は、非同期となるため、非同期関数として宣言し、認証処理を待ちます。
|
|
次にGoogleカレンダーへ送るイベントデータのパラメーターをJSON形式で設定します。
イベントデータのパラメーターの設定は、
Google Calendar API ReferenceのEventの項目
を参照してください。
|
|
イベント・フェアカレンダーのデータに、Google Event IDが設定済みかをチェックします。
設定済みならGoogle Event IDをもとにデータを更新し、未設定ならイベントを追加します。
Googleカレンダーの操作に関するドキュメントは、次を参照してください。
|
|
|
|
上記で設定したリクエストを実行します。
Googleカレンダーへの登録実行後、生成されたGoogleカレンダー側のイベントIDを取得し、kintone APIを呼び出し、event_idフィールドを更新しています。
まとめ
今回は、kintoneのイベント・フェアカレンダーを使って管理しているイベントの情報を、Googleカレンダーへ連携してみました。
他のGoogleのサービスもkintoneと連携して、kintoneで管理しているさまざまな業務データを共有できます。
参照サイト
このTipsは、2025年7月版kintoneで動作を確認しています。
