【Garoon REST API】kintoneにレコード追加されたらGaroonに通知を送信する
はじめに
今回は 通知を登録する APIを用いて、kintoneレコードが新規登録された際、Garoonにレコード内容を通知するカスタマイズを紹介します。
いままで、Garoonとkintoneを両方使用していたユーザーの方は、双方通知を確認する必要がありましたが、今回のカスタマイズで通知をGaroonに一元管理できます。
前提条件と注意事項
- この機能は、以下の環境で動作します。
- クラウド版Garoon
- パッケージ版Garoon(ver 5.0.0以降)
- 製品のアップデートにより、通知アイコンを正常に表示できなくなる場合があります。
完成イメージ
kintoneアプリ
Garoon通知
Garoonシステム管理設定
システム管理(各アプリケーション)> 通知一覧 > 外部通知の設定 > 外部通知の追加から外部通知を設定する必要があります。
Garoonヘルプ - APIの外部通知の設定
クラウド版
・
パッケージ版
を参照してください。
下図を参考に外部通知を追加してください。
- ステータスは「有効」を選択します。
- 許可する外部通知は「API」にチェックしてください。
- 外部通知コードは「kintonedailyreport」に設定します。
- 許可するURLは下記2つを設定します
sampleの部分はご自身の環境に合わせて設定してください。https://sample.cybozu.com/*
kintone(sample.cybozu.com/k...)からGaroon REST APIを実行するために設定します。https://static.cybozu.com/*
今回は通知アイコンに製品内の画像を使用しているので上記URLを含める必要があります。
kintoneアプリ作成
下表を参考に4つのフィールドをアプリに設定し、簡単な日報アプリを作成します。
| フィールドタイプ | フィールドコード | 備考 |
|---|---|---|
| 文字列 (1行) | title | 必須項目にする |
| 文字列 (複数行) | body | 必須項目にする |
| 日付 | date | レコード登録時の日付を初期値にする |
| 作成者 | 作成者 |
JavaScript / CSSカスタマイズ設定
サンプルコード
次のサンプルコードを「dailyReport.js」という名前で保存します。文字コードは「UTF-8」を使用してください。
|
|
14・16行目をご自身の環境に合わせて編集してください。
|
|
アプリ画面の右上の歯車マークから、アプリの設定 > 設定タブ > JavaScript / CSSでカスタマイズの順番に遷移し、下図のように設定します。
本カスタマイズでは、 Cybozu CDN の以下のライブラリーを使用します。
- jQuery
https://js.cybozu.com/jquery/3.3.1/jquery.min.js
jQueryはdailyReport.jsより上位に登録してください。
以上ですべての設定は完了です。
サンプルコード解説
サンプルコード「dailyReport.js」について解説していきます。
makeXMLHeader
|
|
Garoon SOAP APIのヘッダー部分を作成する関数です。
今回はリクエストトークンを取得するために一度だけSOAP APIを実行します。
runajax
|
|
jQueryのajaxを使用してHTTPリクエストを実行する関数です。
リクエストトークン取得と、通知登録でそれぞれSOAP API、REST APIを実行する必要があります。
そのため、引数の「dtype」により、処理を分岐させています。
sendNoticesendNotice
|
|
Garoon通知APIを実行する関数です。sendobjがリクエストボディです。
APIの詳細は
通知を登録する
を確認してください。
104行目のiconオプションにkintone製品内の画像を設定しています。
前提条件と注意事項にもあるように、今後製品のアップデートにより正常に表示されなくなる可能性があるので注意してください。
getRequestToken
|
|
リクエストトークンを取得する
関数を実行します。
makeXMLHeader関数で設定したSOAP API用のヘッダーと、この関数内で成型したボディを使用し、SOAP APIを実行しています。
おわりに
今回のアップデートにより、Garoon以外の製品からGaroonへ通知を登録することが可能になりました。
本Tipsではkintoneから通知を登録してみましたが、他の製品からもGaroonへ通知を登録できそうですね。
ぜひGaroon REST APIを触ってみてください。
このTipsは、2018年11月版Garoonで動作を確認しています。
