【Garoon REST API】Garoon REST APIを使って最強のkintone日報アプリを作ってみる
概要
Garoon REST APIを使うと、Garoonと多くの他システム連携が可能性になります。
今回は例として、kintoneアプリと連携し最強の日報アプリを作ってみたいと思います。
前提条件と注意事項
この機能は、クラウド版Garoonまたはパッケージ版Garoon 4.10以降の環境が必要です。
完成イメージ
今回はkintone側のみカスタマイズし、完成イメージは、以下のような形になります。
まず、日報を作る流れとしては以下です。
- “日付”フィールドで予定を取得したい日を選択します。
- レコード詳細画面上にJavaScriptで配置したボタンを押す。
- Garoon REST APIを使って予定を取得します。
- kintoneのテーブルに取得した予定情報を格納します。
といった感じで、Garoonのスケジュール情報を起点にサクッと日報が書ける最強の日報アプリを目指します。
ちなみに今回は、予定データを取得するのみを想定しているので登録/更新は別の機会にしたいと思います。
こちらがスペースフィールドに配置したボタンです。
こちらが取得するGaroonの予定です。
ボタンを押すとGaroonから指定した日付の予定を取得してテーブルに値を入れます。
またkintoneのグラフ機能を使うと、予定タイプごとに時間を集計できます。
集計の設定は、たとえば以下のように設定できます。
グラフで見ると「会議」が多くなっています。
時間集計することで、どのタイプの業務に時間がかかっているのか振り返ることができ、業務改善できそうです。
Garoonのスケジュール機能とkintoneのグラフ機能でお互いを補完し合う、まさに最強のkintone日報アプリではないでしょうか。
kintone日報アプリの作成
以下のフィールドを配置します。なお、カスタマイズに必要なフィールドのみ紹介しています。
| フィールドコード | フィールドタイプ | 備考 |
|---|---|---|
| kin_date | 日付 | Garoonのスケジュール検索する日付 |
| my_btn | スペース | 検索ボタンを配置用 |
| my_table | テーブル | - |
| event_type | ドロップダウン | テーブル内フィールド |
| event_title | 文字列(1行) | テーブル内フィールド |
| event_time_range | 文字列(1行) | テーブル内フィールド |
| event_time | 数値 | テーブル内フィールド |
| sum_working_time | 計算 | 計算式: SUM(event_time) |
| day_link | リンク | スケジュールリンク用フィールド |
kintone JavaScriptカスタマイズからGaroon REST APIをたたく
今回のポイントは、kintoneのJavaScriptカスタマイズでkintoneからGaroon REST APIを実行する部分です。
Garoon REST APIの”予定の一覧取得”を使って予定一覧を取得していきます。
Garoonの”予定の一覧取得”では、パラメーター指定でいろいろな絞り込みができます。今回は以下を使用しました。
- rangeStart: 検索開始日時
- rangeEnd: 検索終了日時
- orderBy: ソート順
これらを使って送るリクエストがこちらです。
|
|
実際には、日付は開いているレコードの日付フィールドから取得して整形して指定します。
サンプルコード
以下のサンプルコードをコピーし、15行目のサブドメイン名を環境に応じて書き換え、任意の名前で保存してください。(例: myGaroonRequest.js)
|
|
今回はこのサンプルと一緒に Cybozu CDN のjQueryを読み込ませました。
- jQuery
https://js.cybozu.com/jquery/3.3.1/jquery.min.js
JavaScript / CSSでのカスタマイズの画面では、以下のようにjQueryをサンプルプログラムの上に設定してください。
おわりに
kintoneではプラグインを作るしくみがあるため、Garoon REST APIを使ったGaroon連携プラグインなど可能性が広がります。
今後Garoon REST APIは機能強化していくのでご期待ください。
このTipsは、2018年5月版Garoonおよびkintoneで動作を確認しています。
