kintoneとChatworkの連携 レコード詳細画面からタスクを作成しよう
はじめに
kintoneのレコード詳細画面からボタンを押すだけで、Chatworkにタスクを作成できたら便利だと思いませんか?
今回はkintone UI Componentを利用してドロップダウンやボタンを作成し、Chatwork APIを活用してチャットやメンバーを動的に取得・選択し、タスクを作成する方法を紹介します。
注意事項
今回の例はあくまでサンプルで、Chatworkにタスクを作成するところまでのカスタマイズです。
完成イメージ
カスタマイズを適用すると、kintoneのレコード詳細画面の上部にドロップダウンとボタンが表示されます。
ドロップダウンを選択しボタンをクリックすると、レコードに登録されているデータを、タスクとしてChatworkに連携できます。
kintoneのアプリの作成
簡略化のために、次の2つのフィールドだけを設定します。
また、フィールド名とフィールドコードは同一とします。
| フィールド名/フィールドコード | フィールドタイプ |
|---|---|
| タイトル | 文字列(1行) |
| 詳細 | 文字列(複数行) |
Chatwork の設定
Chatworkのアカウント設定ページからAPIトークンを取得します。
詳細は
Chatworkのヘルプページ
を確認してください。
警告
APIトークンは秘密情報なので、絶対に公開しないでください。
APIトークンの情報が漏洩するとAPIを自由に実行できてしまうため、kintoneのJavaScriptの開発においても慎重に扱ってください。
cybozu develper networkでは、認証情報の秘匿にプラグインを利用する方法を推奨しています。
詳しくは以下の記事を確認してください。
サンプルコード
以下のJavaScriptファイルとCSSファイルを設定画面より指定してください。
指定方法はヘルプの
JavaScriptやCSSでアプリをカスタマイズする
を参考してください。
- JavaScriptファイル
- https://unpkg.com/kintone-ui-component@1.16.0/umd/kuc.min.js(kintone UI Component)
- chatwork.js
chatwork.js をJavaScriptファイルとして保存し、アップロードしてください。
- CSSファイル
- chatwork.css
chatwork.css をCSSファイルとして保存し、アップロードしてください。
- chatwork.css
chatwork.js
|
|
chatwork.css
|
|
サンプルコードの解説
以下、コードを具体的に解説します。
チャットリスト・ユーザーリストを取得する関数の定義
|
|
ここではChatwork APIに対して、kintone.proxy()を利用してチャットリストとユーザーリストを取得するための関数を定義しています。
- Chatwork APIの仕様等については
ChatworkのAPIドキュメント
を確認してください。
kintone.proxy()については 外部のAPIを実行する を確認してください。
kintoneイベントハンドラーの定義
レコード詳細画面にドロップダウンやボタンを表示するため、 レコード詳細画面を表示した後のイベント を利用します。
// レコード詳細画面のイベント
kintone.events.on('app.record.detail.show', async (event) => {
// 中略
});レコード詳細画面のイベントの中で、前述の関数やkintone UI Componentを利用していますので、それぞれみていきます。
kintone UI Componentの詳細については、
kintone UI Component v1
を確認してください。
kintone UI Componentの利用
kintone UI Componentを利用して、ドロップダウンやボタンを作成します。
|
|
チャットリストの取得
順番が前後しますが、先にチャットリストを取得する箇所について説明します。
|
|
前述したgetChatworkRooms()を利用することでチャットリストを取得し、チャットリストのためのドロップダウンを更新します。
レコード詳細画面を表示した後のイベント内の定義ですので、レコード詳細画面が表示されたときに自動で取得します。
チャットリストを選択したときのイベント
チャットリストのドロップダウンの変更イベントがあるとき、選んだチャットに応じてメンバーリストを取得する必要があるためその定義をします。
|
|
チャットが選ばれていないときはデフォルトの表示、選ばれている場合は前述のgetChatworkMembers()を呼び出しメンバーリストを取得して、メンバーリストのドロップダウンの項目を変更します。
ボタンをクリックしたときのイベント
|
|
タスクを作るために、レコードのタイトルと詳細を利用しています。
また、レコードのURLもタスクの内容として送りたいため、それも含むような記述にしています。
おわりに
本記事では、kintoneとChatworkを連携させる手法について紹介しました。
このように、kintoneでは外部のコミュニケーションツールなどと連携ができるのも強みです。
この記事が、さまざまなツールとの連携、業務効率化の一例としてご参考になると幸いです。
このTipsは、2024年07月版kintoneで動作を確認しています。
