はじめに
クラウド版Garoon 2018年11月版に、通知に関するGaroon REST APIが追加されました。
通知APIは登録と取得の2つ追加されましたが、今回は登録するAPIを用いて、
kintoneレコードが新規登録された際に、Garoonにレコード内容を通知するカスタマイズを紹介します。
いままで、Garoonとkintoneを両方使用していたユーザーの方は、
双方通知を確認する必要がありましたが、今回のカスタマイズで通知をGaroonに一元管理できます。
前提条件と注意事項
- この機能は、以下の環境で動作します。
- クラウド版 Garoon
- パッケージ版 Garoon(ver 5.0.0以降)
- サンプルプログラムは、その動作を保証するものではありません。
- サンプルプログラムの技術的なサポート等は行っていません。
- 製品のアップデートにより、通知アイコンが正常に表示されなくなる場合があります。
完成イメージ
kintoneアプリ
Garoon通知
Garoonシステム管理設定
システム管理(各アプリケーション) > 通知一覧 > 外部通知の設定 > 外部通知の追加 から外部通知を設定する必要があります。
Garoon ヘルプ - APIの外部通知の設定 クラウド版・パッケージ版をご参照ください。
下図を参考に外部通知の追加を行ってください。
- ステータスは「有効」を選択します。
- 許可する外部通知は「API」にチェックしてください。
- 外部通知コードは「kintonedailyreport」に設定します。
- 許可するURLは下記2つを設定します。{subdomain}の部分はご自身の環境に合わせて設定してください。
・https://{subdomain}.cybozu.com/*
kintone({subdomain}.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のヘッダ部分を作成する関数です。
今回はリクエストトークンを取得するために1度だけ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で確認したものになります。
この機能は非常に便利で、早速使わせて頂いています。
上記を複数の通知先に設定しました。
直接指定する場合は、上記で通知できたのですが
フォームに「ユーザー選択」を配置し、登録した複数の相手に通知する場合
どのように指定すれば良いでしょうか?
KUNI様
便利に使っていただいているとのことありがとうございます。
こちらのコメント欄ですが、記事への使い勝手や不具合報告などのフィードバック目的となっております。
別シナリオでの書き方のご相談は、Garoon カスタマイズフォーラム をご活用ください。
よろしくお願いいたします。
以前はアイコンが表示されていたのですが、突然表示されなくなりました。
Garoonシステム管理設定
システム管理(各アプリケーション) > 通知一覧 > 外部通知の設定 > 外部通知の追加
dailyReport.js
直接
「https://static.cybozu.com/」や「https://static.cybozu.com/g/F18.9_214/grn/image/cybozu/image-common/kintone.svg」のURLを検索すると
404 Not Found が表示されます。
アイコンを表示するアドレスが変わったのでしょうか?
KUNI 様
2019年2月アップデートによりアイコンが保存されているURLが変更になったため、表示されなくなったかと思います。
2019年2月現在、以下のURLで表示可能です。
https://static.cybozu.com/g/F19.2_384/grn/image/cybozu/image-common/kintone.svg
ただし、前提条件と注意事項にありますように、
製品のアップデートにより、通知アイコンが正常に表示されなくなる場合があるので、ご注意ください。
継続して利用したい場合はほかのアイコンに変更するなどの対応をお願いします。
また、その際の技術的な質問に関しましては、Garoon カスタマイズフォーラム をご活用ください。
今度ともcybozu developer networkをよろしくお願いいたします。
ご回答ありがとうございます。
ちなみにですが、今回のようにURLが変更(F18.9_214→F19.2_384)になった事をこちら側で調べることは可能なのでしょうか?
KUNI 様
ブラウザの開発者ツールから調べる事が可能です。
詳細は下記の記事をご参考ください。
動かない?そんな時はデバッグをしてみよう!入門編
https://developer.cybozu.io/hc/ja/articles/207613916
今度ともcybozu developer networkをよろしくお願いいたします。
こちらはまだパッケージ版には対応してないのでしょうか?
Tsutsumi Ayumi 様
お世話になっております。cybozu developer network 運営事務局です。
2019/10/21 にリリースされましたパッケージ版Garoon 5.0.0以降より、本Tipsをパッケージ版でもご利用いただけるようになりました。
なお、サンプルコード105行目で利用しているアイコンについては、注意事項に記載しましたとおり今後利用できなくなる可能性がございます。
ご利用いただく際にはご注意ください。
※通知に表示するアイコン画像は、Garoonのファイル管理に保存し、参照させることが可能です。
参考:ガルーンポータル活用 Tips #1 「行き先案内板」
以上、よろしくお願いいたします。
担当者様
迅速な対応ありがとうございます。ぜひ使いたいと思っていたので、パッケージ版でも利用できるようになったとのことでよかったです。
また、アイコンについての注意もありがとうございます。
通知を送信するユーザーのログイン名を指定するようになっていますが、これだと異動等で日報をチェックする上長が変わった時に、Javascriptを書き換えなければならないので、
例えば通知先を部長グループに指定する等、上長が変わっても良いような書き方はできないでしょうか?
mk 様
お世話になっております。developer network 運営事務局です。
通知の登録APIで通知先として指定できるのはユーザーのみです。
User API と組み合わせてご利用いただくことで、組織やグループを利用した宛先設定をすることが可能です。
グループを宛先にする場合:
以上、よろしくお願いいたします。
ご回答ありがとうございます。試してみます。