カテゴリー内の他の記事

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

フォローする

Index

はじめに

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

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

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

前提条件と注意事項

  • この機能は、現時点ではクラウド版 Garoon が必要です。(2018年11月時点)
  • サンプルプログラムは、その動作を保証するものではありません。
  • サンプルプログラムの技術的なサポート等は行っていません。
  • 製品のアップデートにより、通知アイコンが正常に表示されなくなる場合があります。

完成イメージ

kintoneアプリ

kintone-sample.png

Garoon通知

garoon-sample.png

Garoonシステム管理設定

システム管理(各アプリケーション) > 通知一覧 > 外部通知の設定 > 外部通知の追加 から外部通知を設定する必要があります。

外部通知とは(公式ヘルプ)

https://jp.cybozu.help/ja/g/admin/application/notification/external_gr

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

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 カスタマイズフォーラム をご活用ください。

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

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