はじめに
しばらく間が空きましたが、Cisco Webex Messaging(旧称: Cisco Webex Teams)の連携シリーズ第5弾です!
今回は、Cisco Webex Messagingに投稿された添付ファイルをkintoneアプリへ登録する方法を紹介します。
この連携カスタマイズはCisco Webex Messagingで共有した資料をkintoneアプリへ添付する場合に使えます。
また、モバイルのカメラで撮った写真をkintoneアプリにアップしたい場合などは、直接kintoneアプリに写真をアップするより手間がかからず便利です。
これまでのCisco Webex Messagingとcybozu.comの連携シリーズはこちらです。
- 第1弾(Garoonとの連携) Cisco Webex MessagingからGaroonスケジュールを予約する
- 第2弾(ユーザー連携) Cisco Webex Messagingとcybozu.comでユーザー連結を行う
- 第3弾(kintone ⇒ Cisco Webex Messaging連携) kintoneのアプリデータをCisco Webex Messagingに投稿する方法
- 第4弾(Cisco Webex Messaging ⇒ kintone連携) Cisco Webex Messagingからkintoneにレコードを登録する方法
Cisco Webex Messagingについての詳しい説明は、 Cisco Webex MessagingからGaroonスケジュールを予約する|Cisco Webex Messagingとは を確認してください。
連携イメージ
Cisco Webex Messaging(以下Webex Messaging)のスペースで写真を撮り、ファイル登録用のBotにメンションを投げると、kintoneアプリにファイルが登録されます。
連携概要
ここ何回は、Webex Messagingとkintoneを連携する際にAzure Functionsを使っていましたが、今回はAWSを使ってみたいと思います。(特に深い意味はありません!)
処理の流れは以下のようになります。
- Webex MessagingのWebhookによって、Amazon API Gateway側で投稿されたファイルのURL情報を取得する。
- 添付ファイルのURLより、ファイルの本体を取得する。
- 取得したファイルを、Lambda内にコピーする。
- コピーしたファイルをkintoneに転送し、ファイルIDを取得する。
- kintoneアプリにファイルIDの情報を私てレコードを登録する。
下準備
他のTipsに詳細が記載されている内容については、簡略して記載しています。詳細はリンク先を参照してください。
kintoneアプリ
フィールドは自由に設定できますが、次の2フィールドを必ず含めてください。
フィールド名 | フィールドタイプ | フィールドコード |
---|---|---|
タイトル | 文字列(1行) | title |
添付ファイル | 添付ファイル | fl |
APIトークンの作成
本TipsではAPIトークン認証を使うため、以下の手順でAPIを作成します。
作成したAPIトークンは、処理プログラムで必要になりますのでメモしておいてください。
-
先ほど作成したkintoneアプリの管理画面を開き、「設定」のタブをクリックします。
-
「カスタマイズ/サービス連携」の下の「APIトークン」をクリックします。
-
「生成する」ボタンをクリックし、アクセス権欄の「レコード追加」にチェックを入れ左上の「保存」ボタンをクリックします。
-
「アプリを更新」クリックします。
Cisco Webex Messaging用Bot
- Cisco Webex for Developers(旧:Cisco Spark for Developers) から「MyApps」を開きます。
- 「+」をクリックし、「Create a Bot」をクリックします。
- 以下を参考に設定します。
項目 設定例 Name 任意のbot名(bot) 日本語可 Bot Username 任意文字列@sparkbot.io Icon Defaultから選択するか、任意のアイコンをアップロード Description 任意の説明文
第3弾 にMyAppsの画面ショット付きの説明を記載しています。
Cisco Webex Messaging
- 任意のスペース(タスクを表示させるスペース)のユーザーに作成したBotを追加する。
- 上記のスペースを利用するユーザーを1人以上登録する。
AWSのアカウントセットアップ
AWSのアカウントをお持ちでない方は、 AWSアカウントを設定して管理ユーザーを作成する を参考にして、AWSアカウントのセットアップと管理者ユーザーを作成してください。
利用を開始してから1年間は、無料利用枠の範囲で利用できます。
設定&実装
ここまでは過去のTipsを参照しながら説明してまいりましたが、この後はCisco Webex Messaging連携が初めての方でも、なるべく本Tipsだけで設定と実装ができるようにしていますので、ご安心ください。
AWS Lambdaの設定
まず、Cisco Webex Messagingに投稿されたファイルを取得してkintoneアプリに登録するLambda関数の設定をしましょう。
-
AWSのコンソールにログイン後、Lambdaを選択し「関数の作成」をクリックします。
-
関数の設定、Lambda関数のコードについて以下のとおり設定し「関数の作成」をクリックします。
-
「一から作成」を選択します。
-
「名前」は必須です。任意の名前を入力してください。
-
「ランタイム」は設計図の選択で選択した言語「Node.js 6.10」を選択します。
-
「ロール」は「既存のロール選択」を選択し、「lambda_basic_execution」を選択します。
-
-
同じ画面で下にスクロールし、「関数コード」に処理プログラムを書きますが、詳細は後述します。
-
さらに下にスクロールし、「基本設定」でタイムアウトを30秒に設定し、保存します。
処理プログラム
ここまで設定できたら、Node.jsでCisco Webex Messagingに投稿された画像ファイルをkintoneへ登録する処理を書きます。
先ほどの「関数コード」のエディタ部分に以下のプログラムをコピーし、「XXX」となっている部分を環境に合わせて変更します。
|
|
Amazon API Gatewayの設定
次にAmazon API Gatewayで、Cisco Webex MessagingのWebhookを受けてLambda関数を呼び出すAPIを作成します。
-
AWSのコンソールで、Amazon API Gatewayを選択し、「+APIの作成」をクリックします。
-
「API名」に任意のAPI名を入力し、「APIの作成」をクリックします。「説明」欄は任意です。
-
リソース画面でアクションのドロップダウンから「リソースの作成」を選択します。
-
「リソース名」と「リソースパス」に任意の文字列を入力し、「リソースの作成」をクリックします。
-
今回は、Cisco Webex MessagingからPOSTされるため、アクションのドロップダウンの「メソッドの作成」より、「POST」を選択し、横の✔マークをクリックします。
-
POSTのセットアップ画面にて、各設定をして「保存」をクリックします。
-
「総合タイプ」はLambda関数を選択します。
-
「Lambdaリージョン」は。ご自身のAWSのリージョンを選択します。
-
「Lambda関数」にはLambdaで作成した関数名を入力します。
-
-
Lambda関数に権限を追加する設定画面が出るので「OK」を押します。
-
アクションのドロップダウンの「APIのデプロイ」を選択し、各設定をして「デプロイ」をクリックします。
- 「デプロイされるステージ」は[新しいステージ]を選択します。
- 「ステージ名」には任意の名称を記入します。ここは必須です。
- 他の項目は任意入力です。
Cisco Webex Messaging Webhookの設定
いよいよ大詰めです。次はCisco Webex MessagingのWebhookを設定します。
Cisco Webex Messaging for Developers
にログインし、「Documentation」からWebhookの「Create a Webhook」を開きます。
「Test Mode」を「ON」にしたうえで、各設定をして「Run」をクリックします。
項目 | 設定値 |
---|---|
Authorization | Bearer 「Botのアクセストークン」( Botのアクセストークンの入手方法 ) |
name | 今回作成するWebhookの名前(任意) |
targetUrl | Lambda関数のURL ( Lambda関数のURLの確認方法 ) |
resource | messages(固定) |
event | created(固定) |
filter | mentionedPeople=me |
Botのアクセストークンの入手方法
Botのアクセストークンは、以下の方法で取得できます。(Bot IDとは異なります)
- Cisco Webex Messaging for Developer の「My Apps」から、先ほど作ったBotを選択します。
- 「Access token」のリンクをクリックし、アクセストークンをコピーします。
Lambda関数のURLの確認方法
Lambda関数のURLは、以下の方法で取得できます。
- Amazon API Gatewayの作成したAPIのステージは以下のメソッドをクリックします。
- 「POST」をクリックすると、URL呼び出しが表示されます。
動作確認
長かったですが、設定と実装はすべて完了です。さっそく、動かしてみましょう!
まず、Cisco Webex Messagingアプリを立ち上げ、用意したスペースを開きます。
ちゃんとBotがメンバーにいることを確認してくださいね。
モバイルやカメラ付きのタブレットでしたら、Cisco Webex Messagingアプリのカメラ機能を使って何か撮影してみましょう。
PCをご利用の場合は何か適当な画像を添付します。
メンションで先ほど作ったBotを指定して、投稿します。
実際に登録されているか、kintoneアプリを確認してみましょう。
いかがでしたでしょうか?登録されていましたか?
もし登録に失敗している場合、AWSのCloudWatchでログを確認してみてくださいね。
おわりに
今回は、モバイルで撮影した画像を簡単にkintoneアプリへ登録する方法を題材に、ファイルをCisco Webex Messagingからkintoneへ登録するやり方を紹介しました。
この方法を応用すると、工事現場や店舗の商品展示の現状などを写真に撮って、kintoneの報告アプリにアップできます。
他にも、 Cisco Webex Board を利用すると、会議中の手書きのメモをkintoneの議事録アプリに添付できます!
こんなイメージです。
会議が終ったら、さっと手書きした画像ファイルを会議で使ったスペースに添付します。
連携Botにメンションすると、kintoneの議事録アプリに添付ファイルが登録された状態で、議事録のレコードが作成されます。
Cisco Webex Boardを使うと、拠点間での会議や、リモートワーカーとの会議などが、より快適になりそうですね!
ここに挙げたいくつかの例以外にも、いろいろ便利な利用方法があると思います。ぜひお試しください。
このTipsは、2018年2月版kintoneで動作を確認しています。