kintoneポータルにGoogle Workspace新着メール一覧とスケジュール情報を表示しよう
警告
Moment.jsはメンテナンスモードになり、
日付処理できる代替ライブラリへの移行
が推奨されています。
代替ライブラリのひとつ
Luxon
については、
kintoneカスタマイズでの導入方法の紹介記事
があります。
はじめに
この記事では、Google Workspaceに紐づくGoogleアカウントの直近のスケジュール情報やGmailで受信した新着メールの一覧を表示するポータルカスタマイズを紹介します。
GmailやGoogleカレンダーのページを開いて確認するところを、kintoneを開くだけで最新情報を確認できて便利なカスタマイズです。
必要なもの
- kintoneアカウント
kintone環境をお持ちでない方は、developer networkのメンバー登録([ログイン]ボタンからお申込みください)をした後、1年間無料の kintone開発者ライセンス(開発環境) を利用できます。 - Googleアカウント
完成イメージ
直近のスケジュール表示
- ポータルの左側に、直近のスケジュールをカレンダーごとに最大10件表示します。 *1
- カレンダーの切り替えボタンで、複数のカレンダーを切り替え表示できます。
- スケジュール一覧をクリックすると、Googleカレンダーのページに遷移します。 *2
新着メール一覧表示
- ポータルの右側に、受信トレイから取得した直近の新着メールを5件表示します。
- 未読メールは太字で表示されます。
- メール一覧をクリックすると、Gmailでクリックしたメールの詳細画面を表示します *2
*1 スケジュール表示のみをサポートしています。
スケジュールを修正したい場合は、スケジュール一覧をクリックし、表示されるGoogleカレンダーの画面で編集してください。
^
*2 Google Workspaceの仕様上、複数アカウントにログインしている場合、一番上のアカウントが使用されます。
kintoneポータルにはポータル表示時にログインしたアカウントのGmailやスケジュール情報を表示しますが、一覧をクリックしたときの遷移先のページは、一番上のアカウントとして開かれます。
Gmailの場合は、メールの詳細画面ではなくそのアカウントの受信トレイを表示します。
^
システム構成
- kintoneポータルからGoogle APIを実行し、GmailやGoogleカレンダーの情報を取得します。
- kintoneからAPIを実行するため、Google Cloud Platformより認証情報を取得します。
- Google APIは、 Google JavaScriptクライアントライブラリ を使って実行します。
注意事項
- タイトル部分のアイコン(メールやカレンダー)は、kintone製品のアイコンを使用しています。
製品のアップデートにより、通知アイコンが正常に表示されなくなる場合があります。
Google Cloud Platformの設定
Google APIを利用できるよう、Google Cloud Platformでプロジェクトを作成します。
-
Google API Console にGoogle Workspace管理者アカウトでログインします。
-
[プロジェクトの選択]をクリックします。
-
[新しいプロジェクト]をクリックします。
-
プロジェクト名を入力し、[作成]ボタンをクリックします。この記事では「kintone-portal」としています。
プロジェクトが作成されると、作成したプロジェクトのダッシュボードに自動で移動します。
-
[APIとサービスを有効化]をクリックします。
-
「APIとサービスを検索」ボックスに「Gmail」と入力します。「Gmail API」が表示されるので選択します。
-
[有効にする]ボタンをクリックします。サービスが有効化されると、Gmail APIの概要ページに自動で遷移します。
-
[認証情報を作成]ボタンをクリックします。
-
次の内容を入力します。入力が終わったら、[必要な認証情報]ボタンをクリックします。
項目 値 使用するAPI 「Gmail API」を選択します。 APIを呼び出す場所 「Webブラウザー(JavaScript)」を選択します。 アクセスするデータの種類 「ユーザー データ」を選択します。 -
「OAuth同意画面の表示」モーダルが表示されます[同意画面を設定]をクリックします。
-
次の内容を入力します。入力が終わったら、[保存]ボタンをクリックします。
必要最低限の設定項目を記載しています。その他の設定項目は、任意に設定してください。項目 値 アプリケーション名 任意の値を入力します。この記事では「kintone-portal」としています。 サポートメール メールアドレスを選択します。 承認済みドメイン 「cybozu.com」を入力します。 -
認証情報ページに自動で遷移します[認証情報を作成]ボタンをクリックし、「OAuthクライアントID」を選択します。
-
次の内容を入力します。入力が終わったら、[作成]ボタンをクリックします。
項目 値 アプリケーションの種類 「Webアプリケーション」を選択します。 名前 任意の値を入力します。この記事では「kintone-portal」としています。 承認済みのJavaScript生成元 「https://SUBDOMAIN.cybozu.com」を入力します。
SUBDOMAINはご利用のkintone環境に合わせて変更してください。 -
OAuthクライアントIDが生成されます。
クライアントIDはkintoneに適用するカスタマイズファイルに利用します。メモして控えておいてください。
[完了]ボタンをクリックします。
クライアントIDは、「APIとサービス」で作成プロジェクトを選択し、左ペインから「認証情報」を選択すると、再確認できます。
-
同様の手順で、Google Calendar APIも有効化します。左ペインから「ダッシュボード」を選択します[APIとサービスを有効化]をクリックします。
-
「APIとサービスを検索」ボックスに「Calendar」と入力します。「Google Calendar API」が表示されるので選択します。
-
[有効にする]ボタンをクリックします。
-
[認証情報を作成]ボタンをクリックします。
-
次の内容を入力します。入力が終わったら、[必要な認証情報]ボタンをクリックします。
項目 値 使用するAPI 「Google Calendar API」を選択します。 APIを呼び出す場所 「Webブラウザー(JavaScript)」を選択します。 アクセスするデータの種類 「ユーザー データ」を選択します。 -
認証情報は、Gmail APIの有効化で作成したものと同じ認証情報を使用します[完了]ボタンをクリックします。
Google Cloud Platformの設定は以上です。
kintoneの設定
このカスタマイズでは、次の外部ライブラリを利用しています。
- jQuery v3.3.1,
ドキュメント
- https://js.cybozu.com/jquery/3.3.1/jquery.min.js
- Google JavaScriptクライアントライブラリ
ドキュメント
Google APIを扱うためのライブラリです。- https://apis.google.com/js/client.js
- https://apis.google.com/js/platform.js
- Moment.js v2.24.0,
ドキュメント
- https://js.cybozu.com/momentjs/2.24.0/moment.min.js
- Loaders.css v0.1.2,
ドキュメント
- loaders.css.js
- loaders.min.css
ポータルカスタマイズをするには、kintone全体にカスタマイズを適用します。
手順の詳細は「
JavaScriptやCSSを使用したカスタマイズ
」を参照してください。
- システム管理画面を開きます。
- [JavaScriptやCSSでkintone全体をカスタマイズする]をクリックします。
- 次の内容を入力します。入力が終わったら、[保存]ボタンをクリックします。
項目 値 適用範囲 ポータルを表示させたいユーザーの範囲を選択します。 PC用のJavaScriptファイル 次の順で指定します。 - https://js.cybozu.com/jquery/3.1.1/jquery.min.js
- https://apis.google.com/js/client.js
- https://apis.google.com/js/platform.js
- https://js.cybozu.com/momentjs/2.24.0/moment.min.js
- loaders.css.js
- カスタマイズファイル(kintone-portal-gsuite.js)
詳細は、後述の サンプルコード(kintone-portal-gsuite.js) を参照してください。
PC用のCSSファイル 次の順で指定します。 - loaders.min.css
- カスタマイズファイル(kintone-portal-gsuite.css)
詳細は、後述の サンプルコード(kintone-portal-gsuite.css) を参照してください。
loaders.cssの入手方法
- https://github.com/ConnorAtherton/loaders.css/releases/tag/0.1.2 にアクセスします。
- Assetsの「Source code(zip)」をクリックし、Zipファイルをダウンロードします。
- ダウンロードしたZipファイルを解凍します。解凍したフォルダーの以下のファイルを利用します。
- loaders.css.js
- loaders.min.css
kintoneの設定は以上です。
サンプルコード
kintone-portal-gsuite.js
12行目GOOGLE_CLIENT_IDの値: Google Cloud Platformの設定 でメモしておいたクライアントIDに置き換えてください。
|
|
kintone-portal-gsuite.css
|
|
動作確認
- kintoneにログインし、ポータル画面を開きます。
- Googleアカウントへのログインを求めるポップアップが表示されたら、Google Workspaceで利用しているアカウントを使ってログインします。
有効なセッションがある場合は、ログインは要求されずにカレンダー一覧や新着メール一覧が表示されます。 - カスタマイズで追加したカレンダー一覧や新着メール一覧がポータルに表示されます。
初回のみ、Googleアカウントへのログイン後に権限付与を求めるポップアップが表示されます。
次の手順で、許可します。
- 「このアプリは確認されていません」ポップアップが表示されます。「詳細」リンクをクリックします。
- 「cybozu.com(安全ではないページ)に移動」リンクをクリックします。
- 権限の付与を確認するモーダルが表示されます。以下のすべての権限に対し[許可]ボタンをクリックします。
- メール メッセージと設定の表示
- カレンダーの設定を表示します。
- すべてのカレンダーの予定を表示
- カレンダーを表示
- 「選択内容を確認してください」ポップアップで、[許可]ボタンをクリックします。クリックすると、kintoneポータルにスケジュールとメール一覧が表示されます。
おわりに
この記事では、Google Workspaceという外部サービスのデータをkintoneポータルに表示するカスタマイズを紹介しました。
他にもChrome拡張の Kintone Portal Designer を使ってお手軽にポータルをカスタマイズする kintoneポータルカスタマイズ例 もあるので、ぜひ参照してください。
使用しているAPI
このTipsは、2019年11月版kintoneで動作を確認しています。