Cisco Sparkからkintoneにレコードを登録する方法

フォローする

Cisco Spark と cybozu.com の連携シリーズ第4弾です。第3弾では、Cisco SparkのBotを使ってkintoneアプリに登録されている自分のタスクをCisco Sparkに呼び出す方法をご紹介しました。第4弾はCisco Sparkのメンション機能をつかって、担当者を指定してタスクをkintoneに登録する方法をご紹介します。

似たようなTipsとして、Slackとkintoneを連携させたSlackから手軽にkintoneへレコード登録する方法や、Slack-kintone連携をAzureでもやってみたがあります。連携の仕組みも動作もほとんど同じですが、本Tipsではタスクの担当者を指定できる点がポイントです。

 

これまでのCisco Spark と cybozu.com の連携シリーズはこちらです。

第1弾(Garoonとの連携) Cisco SparkからGaroonスケジュールを予約する

第2弾(ユーザー連携) Cisco Sparkとcybozu.comでユーザー連結を行う

第3弾(kintoneとの連携)kintoneのアプリデータをCisco Sparkに投稿する方法

 

連携イメージ

Cisco Sparkにタスク投稿用Botを使ってタスクを投稿するとkintoneのタスク管理アプリにレコードが登録されます。

Cisco Sparkのメンション機能を使って人を選択するとkintoneアプリの担当者欄にメンションされた人の名前が登録されます。また、誰にもメンションをしない場合は投稿者が担当者欄に登録される仕組みです。

 

連携概要

Azure fuctions(Node.js)にて、以下の処理を行う

  • Cisco SparkのWebhookからPOSTされた投稿メッセージ、投稿者のメールアドレス、メンションされた人のCisco SparkのユーザーIDを取得
  • Cisco Sparkとcybozu.comのユーザーをマッチング
  • kintoneへのリクエストデータを作成
  • kintone REST APIを実行し、タスク管理アプリにレコードを登録

 

事前準備

kintoneアプリ

第3弾で作成したアプリをそのまま使うことも可能です。

  • 誰のタスクかがわかるシンプルなタスク管理アプリを作成します。
フィールド名 フィールドタイプ フィールドコード
タスク 文字列(1行) task
ステータス ラジオボタン status
担当者 ユーザー選択 responsible
詳細 文字列(複数行) detail

 

cybozu.com

第3弾で用意したユーザーを使えます。

  • Cybozu.comの管理権を有するユーザーを用意する(ユーザー情報を取得できる権限が必要)

Cisco Spark用Bot

項目 設定例
Display Name InputTask(bot) ※日本語可
Bot Username 任意文字列@sparkbot.io
Icon 任意(URL)

第3弾にMyAppsの画面ショット付きの説明を記載しています

Cisco Spark

  • 任意のスペース(タスクを表示させるスペース)のユーザーに作成したBotを追加する
  • 上記のスペースを利用するユーザーを1人以上登録する
  • 登録するユーザーのメールアドレスは、cybozu.comに登録されているメールアドレスと一致させる(注)

注:Cisco Sparkとcybozu.comのユーザー連携は、メールアドレスで一致させています。

 ユーザー連携の 詳細はCisco Sparkとcybozu.comでユーザー連結を行うをご参照ください。

 

環境作成

Azure Functions

Azure Functionsの準備に関しては、kintoneとMicrosoft Azureを連携してみよう (Azure Functionsその1)の「Azure Functionsの準備」欄を参考にしてください。

ここでは簡単にポイントのみ記述します。(アカウント等の準備は省略)

  • 関数を作成
  1. Function Appの画面からクイックスタート画面を開く
  2. シナリオ選択は、「WebHook + API」を選択
  3. 言語の選択は、「JavaScript」を選択
  • パケットモジュールのインストール
  1. 「Function Appの設定」→ 「Kuduに移動」を選択
  2. 「site」→作成した関数のフォルダに移動
  3. package.jsonを生成
  4. npmコマンドを実行し、「request」「request-promise」をインストール
  5. package.jsonを開いて下図のようになっているか確認(①、②、③)

  • Node.js
  1. 下記のJavaScripプログラムをコピーし、作成した関数の「</>開発」のコード欄に貼り付
  2. 「XXX」で記載されている各パラメーターをご自身の環境に合わせて記入
  3. 「保存」ボタンをクリック

Cisco Spark Webhook の設定

項目 設定値
Authorization Bearer 「Botのアクセストークン」 ※
name 今回作成する Webhook の名前(任意)
targetUrl Azure Functionsの関数のURL ※
resource messages(固定)
event created(固定)
filter mentionedPeople=me ※

※ 詳しくは第3弾(kintoneとの連携)をご参照ください

 試してみよう

実際にCisco Sparkのタスク登録用Botが参加しているスペースからタスクを投稿してみましょう。

まず自分が担当するタスクの場合、「@InputTask(Bot)タスク+詳細」のフォーマットで入力します。

※「+」は区切り文字になっており、「+」の前後でタスクと詳細に分けてkintoneに登録されます。

kintoneアプリを確認してみましょう。

 

次に自分以外の誰かが担当するTodoを登録してみましょう。今度はCisco Sparkのメンション機能を使っ

て「@InputTask(Bot) @ユーザータスク+詳細」のフォーマットで入力します。

 

こちらもkintoneアプリを確認してみましょう。

 

 

関連技術情報

Cisco Sparkに投稿されたメッセージ(Botへのメンション)を取得する:Get Message Details API

cybozu.comのユーザー情報を取得する:ユーザーエクスポート API(JSON)

kintoneアプリにレコードを登録する:レコード登録(1件)

 

 おわりに

今回は、タスクの担当が一人の場合を想定した例でご説明しましたが、担当者が複数いる場合などにもチャレンジしてみてください。

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

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

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