はじめに
2016年8月のアップデートにより追加される新機能「スペース内のスレッドへのコメント投稿」を使ったTipsをご紹介します。
追加されるREST APIの概要
この新機能のために追加されるREST APIは、リクエストボディでスペースIDとスレッドIDを指定することで、スレッドにコメントを投稿できるというものです。
投稿にはユーザーや組織/グループへのメンション、画像(ファイルキーによる指定)も含めることができます。
指定できるパラメータの詳細等は、こちらのページをご参照ください。
今回のシナリオのポイント
カンの鋭い方は機能名からピンと来たかもしれませんが、このREST APIでできるHTTP メソッドは現状、GETはなくPOSTのみです。
そこで、今回はこのAPIで実現できる、スレッドへの一方通行的な活用例を考えてみました。
具体的には、アプリ内のボタンを押すとアプリのデータを取得そして集計してスレッドに投稿するというものです。
百聞は一見にしかずということで、次の完成イメージをご覧ください。
完成イメージ
まずはアプリ側です。
一覧画面のヘッダーメニュースペースにある「本日の出来高をスレッドに投稿する!」ボタンを押すと…
(注:ダミーデータであり、実際のサイボウズへのお問い合わせ内容ではありません。)
後ほど、スレッド側の画面を確認してみます。
最新投稿で、アプリのレコード件数を集計したデータが投稿されています。
事前準備
スレッド-アプリ連携の準備として、必要な手順はこちらです。
- kintone のポータル画面から、適当なスペースを作成します。スペースのIDを控えておきます。
- スペースから適当なスレッドを作成します。スレッドのIDを控えておきます。
- スペースからアプリを作成します。今回はアプリストアの「サポートFAQ」を使いました。
- アプリにレコードを登録します。
スペースIDとスレッドIDについては、kintoneスレッドをブラウザで閲覧した際のURLで確認でき、以下の例ではスペースIDは4、スレッドIDは5です。
アプリ側の作業では、今回はレコードの件数をカウントするだけなので、フィールドを自由に設定してOKです。
また、今回のTipsでは、レコード件数の作成日時を見て本日分と今月分をカウントするため、できれば作成日時が2日間以上にまたがるようなレコードを複数登録しましょう。
ちなみに、今回は投稿ボタンを押した後の確認画面をCybozu CDNにあるSweetAlertを利用して実装したため、「アプリの設定」画面でCDNのURLを指定するという手順も必要でした。developer networkのこちらの記事を参考にしてやってみましたので、カッコいい確認画面にしたい方はあわせてご確認ください!
サンプルプログラムと解説
サンプルプログラム(JavaScript)
サンプルプログラムの概要は以下のとおりです。
- ボタン作成
- ボタンクリック時の処理を以下ステップ3-5に記述
- 今月作成したすべてのレコード情報をREST APIで取得
- 上記レコードからさらに本日作成分をJavaScriptでカウントして変数に代入
- ステップ3とステップ4の内容をスレッドに投稿
プログラムの全体はこちらです。
新APIを使用している箇所
ここで、今回の新機能の部分にクローズアップしてみます。
- 上のようにスペースIDとスレッドIDを指定してPOSTします。メンションに、組織コードとタイプを指定します。
その他のポイント
取得可能レコード件数について
- REST APIの「query」パラメータで、何も指定しない場合、取得できるレコード件数の上限は100件です。
「limit」オプションの指定で上限を拡大できますが、指定可能な最大値は500であるため、このサンプルプログラムで取得できる上限は500件です。APIドキュメントの説明はこちらです。
totalCountの使用
- REST APIのリクエストパラメータ「totalCount」を「True」で指定することで、レコード件数を簡単にカウントすることができます。APIドキュメントの説明はこちらです。
本日作成件数の取得方法(例)
- totalCountで今月作成件数はカウントできますが、今回はさらに本日分のカウントも取得したかったため、JavaScriptで上のようなfor文でのカウントアップにより取得しました。
使用したAPI
終わりに
新しく追加されたREST APIの活用方法を考えてご紹介しました。アプリとスレッドが連携することで、kintoneのコミュニケーションツールとしての使い方の幅がさらに広がりそうですね!
このTipsは、2016年8月版で確認したものになります。
記事に関するフィードバック
記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。