【Garoon JavaScript API】ガルーンのスケジュールをkintoneに連携する
警告
Moment.jsはメンテナンスモードになり、
日付処理できる代替ライブラリへの移行
が推奨されています。
代替ライブラリのひとつ
Luxon
については、
kintoneカスタマイズでの導入方法の紹介記事
があります。
概要
Garoonから 外部のAPIを実行する APIを使って、Garoonのスケジュールのデータをkintoneのアプリに登録します。
前提条件と注意事項
- このカスタマイズには、クラウド版Garoonまたはパッケージ版Garoon 4.6以降とkintoneのスタンダードコース以上の契約が必要です。
- 次の項目については対象外となります。
- 繰り返し予定
- 組織の参加者
- 予定情報: 施設、添付ファイル、会社情報、詳細設定
- リモートアクセスモード
- 多言語
- モバイル
- kintoneからGaroonへのデータ同期
できること
プロキシAPIの機能(外部APIを実行する仕組み) では、外部サービスへデータを登録/更新する際のアクセストークンをコード上に保持しないで連携できるというメリットがあります。
今回は外部サービス = kintoneとして連携します。機能は次のとおりです。
- Garoonの予定メニュー連携のボタンを押す。
- kintoneアプリに未登録の場合 ⇒ 登録
- kintoneアプリに登録済みの場合 ⇒ 更新
- Garoonのコメントはkintoneアプリのテーブルにコメント数分登録
スケジュールの情報について、Garoonのコメントとは異なり翌日以降もkintoneのレコードコメント上でコミュニケーションをとったり、プロセス管理でステータスを設定したりできます。
完成イメージ
Garoonの予定メニュー連携を利用してスケジュール詳細画面にボタンを表示し、ボタンをクリックすると、あらかじめ指定したkintoneのアプリにデータが登録されます。
予定メニュー連携については以下のヘルプを参照してください。
Garoonヘルプ - 予定メニュー連携の設定 クラウド版 ・ パッケージ版
今回はkintoneのアプリにはJavaScript/CSSファイルの設定は不要です。
Garoonのスケジュールの設定にのみ、JavaScript/CSSを適用しカスタマイズします。
kintoneアプリのフィールドコードは利用するため、まずkintoneアプリの設定をします。
kintoneアプリの設定手順
Garoonの設定手順
今回の要件はGaroonの予定データをkintoneに連携したいというものです。
このTipsが書かれた2017年8月版の環境では、スケジュールJavaScript APIは一覧のイベントのみで、また予定データを取得するといった機能が搭載されていませんでした。
そのためGaroonの予定メニュー連携の機能を使って、HTMLからファイル管理上のJavaScriptファイルやその他のライブラリを呼び出すという方法で実装するTipsとなっています。
1. アプリの作成
最初はkintoneのアプリを作成します。
アプリの具体的な作成方法は、以下のヘルプを参照してください。
アプリをはじめから作成する ~FAQアプリを作ってみよう~
1-1. フォーム
フィールドは以下のとおり設定してください。
フィールドコードは、Garoon側に設定するJavaScriptコード内でそれぞれのフィールドを指定するための一意の文字列となります。
間違えないように設定してください。
フィールド名 | フィールドコード | フィールドタイプ | 備考 |
---|---|---|---|
イベントID | EventId | 文字列(一行) | |
タイトル | Title | 文字列(一行) | |
開始日時 | StartDate | 日時 | |
終了日時 | EndDate | 日時 | |
参加者 | AttendUser | ユーザー選択 | |
メモ | Memo | 文字列(複数行) | |
コメント日時(テーブル) | CommentDate |
日時 | 「コメント日時」から「コメント内容」まではテーブルとして設定します。 |
コメント登録者(テーブル) | CommentUser | ユーザー選択 | |
コメント内容(テーブル) | CommentContents | 文字列(複数行) | |
- | CommentTable | テーブル | 上記3つのフィールドのテーブルのフィールドコード |
1-2. APIトークンの生成
[設定]タブ >「APIトークン」に移動し、「生成する」ボタンを押してAPIトークンを生成します。「レコード追加」「レコード編集」にチェックを入れます。
APIトークンはプロキシAPIの設定画面で入力しますので、控えておいてください。
最後に、アプリの設定画面に戻って「アプリを公開」を押したら、kintoneアプリの設定は完了です!
Garoon側で設定するJavaScriptファイルの中にkintoneのアプリIDを入力しますので、こちらも控えておいてください。
例)https://sample.cybozu.com/k/{アプリID}/
Garoonの設定手順
今回はGaroonの予定データをkintoneに連携します。
Garoonの予定メニュー連携の機能を使って、HTMLからファイル管理上のJavaScriptファイルやその他のライブラリを呼び出すという方法で実装しました。
1. プロキシAPIの設定
管理画面の「API」>「プロキシAPIの設定」で、次の3つのプロキシコードの設定を追加します。
管理画面の使用方法については、Garoonヘルプ
クラウド版
・
パッケージ版
も参照してください。
- getKintoneRecord
- registerKintoneRecord
- updateKintoneRecord
それぞれ、次の表と画面を参考にして設定してください。
画面ではBasic認証を利用した環境のため、キーに「Authorization」、値に「Basic」と「Basic認証のユーザー名:Basic認証のパスワード
をBase64エンコードした値」を設定しています。
プロキシAPIの設定画面の主な項目
プロキシコード | ステータス | メソッド | ヘッダー(キー:値) |
説明 |
---|---|---|---|---|
getKintoneRecord | 有効 | GET |
|
|
registerKintoneRecord | 有効 | POST |
|
|
updateKintoneRecord | 有効 | PUT |
|
|
getKintoneRecordの詳細画面
registerKintoneRecordの詳細画面
updateKintoneRecordの詳細画面
2. サンプルコード
次のサンプルコードをエディタにコピーして、ファイル名を「grkin_common.js」、文字コードを「UTF-8」で保存します。
ファイル名は任意ですが、ファイルの拡張子は「.js」にしてください。
14行目のkintoneアプリIDは、ご使用の環境に合わせて修正してください。
|
|
次のJavaScriptファイルをダウンロードしてください。
文字化けする可能性があるため、右クリックし、直接ダウンロードしてください。
こちらのファイルは修正せず、そのまま使用してください。
- grkin_schedule.js ファイル
ポイント
プロキシAPIを使ってkintone APIを実行している箇所を抜粋します。
GET
|
|
POST
|
|
PUT
|
|
3. JavaScriptとCSSファイルのアップロード
-
grkin_common.jsとgrkin_schedule.jsをファイル管理に保存します。
-
sweetalert_button_grn.cssをファイル管理に保存します。
sweetalert_button_grn.cssはSweetAlertの表示崩れを防ぐcssです。詳細は こちら を参照してください。
sweetalert_button_grn.cssの入手方法:- https://github.com/garoon/css-for-SweetAlert にアクセスします。
- [Clone or download]ボタンをクリックして、[Download ZIP]を選択します。
- ダウンロードしたzipファイルを解凍します。
- 解凍したファイルの「css」フォルダー以下の「sweetalert_button_grn.css」を利用します。
このとき、それぞれのファイルのダウンロードリンクをのちほどメニュー連携で使うので控えておいてください。
ファイルの詳細から「ファイル右クリック→リンクのアドレスをコピー」でダウンロードリンクが生成できます。
4. 予定メニュー連携の設定
管理画面の「スケジュール」>「予定メニュー連携」>「予定メニュー連携を追加する」で、既存または新規の予定メニューの項目に、以下のHTMLコードを記述します。
6~8行目のgrkin_common.jsとgrkin_schedule.js、sweetalert_button_grn.cssのダウンロードリンクについては、ご使用の環境に合わせて修正ください。
また、grkin_common.jsとgrkin_schedule.jsの順番を間違えないよう、ご注意ください。
|
|
「往訪」メニューに連携させるよう記述した例が以下の画面です。
以上で設定は完了です。
完成イメージのとおりに動けば成功です。
お疲れさまでした。
おわりに
Garoonのスケジュールとkintoneを連携し、議事録管理や案件管理に使うことができそうです。フィードバックをお待ちしています。
変更履歴
- 2020/02/13
- sweetalert_button_grn.css適用方法の追記
- grkin_common.jsとgrkin_schedule.jsの記載順番に関する注意事項の追記