カテゴリー内の他の記事

【Garoon REST API】kintoneにレコード追加されたらGaroonに通知を送信する

フォローする

Index

はじめに

クラウド版Garoon 2018年11月版に、通知に関するGaroon REST APIが追加されました。

通知APIは登録取得の2つ追加されましたが、今回は登録するAPIを用いて、
kintoneレコードが新規登録された際に、Garoonにレコード内容を通知するカスタマイズを紹介します。

いままで、Garoonとkintoneを両方使用していたユーザーの方は、
双方通知を確認する必要がありましたが、今回のカスタマイズで通知をGaroonに一元管理できます。

前提条件と注意事項

  • この機能は、以下の環境で動作します。
    • クラウド版 Garoon 
    • パッケージ版 Garoon(ver 5.0.0以降)
  • サンプルプログラムは、その動作を保証するものではありません。
  • サンプルプログラムの技術的なサポート等は行っていません。
  • 製品のアップデートにより、通知アイコンが正常に表示されなくなる場合があります。

完成イメージ

kintoneアプリ

kintone-sample.png

Garoon通知

garoon-sample.png

Garoonシステム管理設定

システム管理(各アプリケーション) > 通知一覧 > 外部通知の設定 > 外部通知の追加 から外部通知を設定する必要があります。
Garoon ヘルプ - APIの外部通知の設定 クラウド版パッケージ版をご参照ください。

下図を参考に外部通知の追加を行ってください。

garoon01.png

  1. ステータスは「有効」を選択します。
  2. 許可する外部通知は「API」にチェックしてください。
  3. 外部通知コードは「kintonedailyreport」に設定します。
  4. 許可する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 レコード登録時の日付を初期値にする
作成者 作成者  

 

kintone01.png

JavaScript / CSSカスタマイズ設定

サンプルコード

下記のサンプルコードを「dailyReport.js」という名前で保存します。文字コードは「UTF-8」を使用してください。

14~17行目をご自身の環境に合わせて編集してください。

アプリ画面の右上の歯車マークから

アプリの設定 > 設定タブ > JavaScript / CSSでカスタマイズ の順番に遷移し、下図のように設定します。

kintone02.png

本カスタマイズでは、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」により、処理を分岐させています。

sendNotice

Garoon 通知 APIを実行する関数です。sendobj がリクエストボディです。
APIの詳細はこちらをご覧ください。

今回の記事では、28行目のiconオプションにkintone製品内の画像を設定しています。
前提条件と注意事項にもあるように、今後製品のアップデートにより正常に表示されなくなる可能性があるので注意してください。

getRequestToken

リクエストトークンを取得する関数を実行します。
makeXMLHeader関数で設定したSOAP API用のヘッダと、この関数内で成型したボディを使用し、SOAP APIを実行しています。

おわりに

今回のアップデートにより、
Garoon以外の製品からGaroonへ通知を登録することが可能になりました。
本Tipsではkintoneから通知を登録してみましたが、他の製品からもGaroonへ通知を登録することができそうですね。

ぜひGaroon REST APIを触ってみてください。

このTipsは、2018年11月版 Garoonで確認したものになります。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
KUNI

この機能は非常に便利で、早速使わせて頂いています。

// 通知を送信するユーザーのログイン名

const grnNoticeUser = ['{Target User Login Name}'];

上記を複数の通知先に設定しました。

const grnNoticeUser = ['a-yamada','b-yamamoto','c-suzuki'];

直接指定する場合は、上記で通知できたのですが

フォームに「ユーザー選択」を配置し、登録した複数の相手に通知する場合

どのように指定すれば良いでしょうか?

Avatar
cybozu Development team

KUNI様

便利に使っていただいているとのことありがとうございます。

こちらのコメント欄ですが、記事への使い勝手や不具合報告などのフィードバック目的となっております。

別シナリオでの書き方のご相談は、Garoon カスタマイズフォーラム をご活用ください。

よろしくお願いいたします。

Avatar
KUNI

以前はアイコンが表示されていたのですが、突然表示されなくなりました。

Garoonシステム管理設定

システム管理(各アプリケーション) > 通知一覧 > 外部通知の設定 > 外部通知の追加

https://static.cybozu.com/*

dailyReport.js

// 通知のアイコン

'icon': 'https://static.cybozu.com/g/F18.9_214/grn/image/cybozu/image-common/kintone.svg',

直接

https://static.cybozu.com/」や「https://static.cybozu.com/g/F18.9_214/grn/image/cybozu/image-common/kintone.svg」のURLを検索すると

404 Not Found が表示されます。

アイコンを表示するアドレスが変わったのでしょうか?

 

Avatar
cybozu Development team

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をよろしくお願いいたします。

Avatar
KUNI

ご回答ありがとうございます。

ちなみにですが、今回のようにURLが変更(F18.9_214→F19.2_384)になった事をこちら側で調べることは可能なのでしょうか?

Avatar
cybozu Development team

KUNI 様

ブラウザの開発者ツールから調べる事が可能です。

詳細は下記の記事をご参考ください。

動かない?そんな時はデバッグをしてみよう!入門編
https://developer.cybozu.io/hc/ja/articles/207613916

今度ともcybozu developer networkをよろしくお願いいたします。

Avatar
Tsutsumi Ayumi

こちらはまだパッケージ版には対応してないのでしょうか?

Avatar
cybozu Development team

Tsutsumi Ayumi 様

お世話になっております。cybozu developer network 運営事務局です。

 

2019/10/21 にリリースされましたパッケージ版Garoon 5.0.0以降より、本Tipsをパッケージ版でもご利用いただけるようになりました。

なお、サンプルコード105行目で利用しているアイコンについては、注意事項に記載しましたとおり今後利用できなくなる可能性がございます。
ご利用いただく際にはご注意ください。

※通知に表示するアイコン画像は、Garoonのファイル管理に保存し、参照させることが可能です。

  1. ファイル管理に画像ファイルを保存
  2. ダウンロードアイコンを右クリックして、リンクのアドレスをコピー
  3. サンプルコード105行目のアイコンURLを書き換える

参考:ガルーンポータル活用 Tips #1 「行き先案内板」

 

以上、よろしくお願いいたします。

Avatar
Tsutsumi Ayumi

担当者様

迅速な対応ありがとうございます。ぜひ使いたいと思っていたので、パッケージ版でも利用できるようになったとのことでよかったです。

また、アイコンについての注意もありがとうございます。

 

Avatar
mk

通知を送信するユーザーのログイン名を指定するようになっていますが、これだと異動等で日報をチェックする上長が変わった時に、Javascriptを書き換えなければならないので、

例えば通知先を部長グループに指定する等、上長が変わっても良いような書き方はできないでしょうか?

Avatar
cybozu Development team

mk 様

お世話になっております。developer network 運営事務局です。

通知の登録APIで通知先として指定できるのはユーザーのみです。
User API と組み合わせてご利用いただくことで、組織やグループを利用した宛先設定をすることが可能です。

グループを宛先にする場合:

  1. グループの所属ユーザーエクスポートAPI で、グループに所属するユーザー情報を取得
  2. 1で取得したユーザーを通知APIの通知先に指定する

以上、よろしくお願いいたします。

ログインしてコメントを残してください。