はじめに
しばらく間が空きましたが、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 で動作を確認しています。