警告
記事内で利用しているライブラリ「
request-promise
」は、非推奨(deprecated)になりました。
HTTPリクエストができる他のライブラリ(
axios
など)や、
https.requst
に書き換えることをおすすめします。
はじめに
Cisco Webex MessagingからGaroonスケジュールを予約する に引き続き、Cisco Webex Messagingとcybozu.comの連携シリーズ第2弾です。
今回紹介するのは、Cisco Webex Messagingとcybozu.comでユーザー情報を紐づけする方法です。
この技術を応用すると、たとえば以下のようなことが可能になります。
- Cisco Webex Messagingに投稿したメッセージを、作成者を投稿者のユーザーでkintoneにレコードを登録する。
- Cisco Webex Messagingに自分自身のGaroonのスケジュールを表示する。
システム概念図
Cisco Webex MessagingからGaroonスケジュールを予約する
と同様に、今回もAWS Lambdaを利用して連携します。
Cisco Webex Messagingでは会議室に投稿したユーザーの情報を取得して、Cisco Webex Messagingとcybozu.com双方で、ユーザー情報を紐づけることができます。
たとえば、Cisco Webex MessagingとCybozu.com双方でユーザーのメールアドレスを同一にした場合、メッセージの投稿時、メールアドレスをキーにしてユーザーを検索できます。
下準備(メールアドレスをキーにする場合)
Cisco Webex Messaging
- 会議室にメッセージを投稿するためのユーザーを用意してください(★)
- Cisco Webex Messaging上に結果を表示するためのbot用のアカウントを1つ用意してください。
- 専用の会議室を1つ用意してください。
- Cisco Webex MessagingのAPI情報は
Access the Webex API
を参考にしてください。
Cybozu.com
- (★)と同じメールアドレスをもつユーザーを用意してください。
- 上記とは別にAPI実行用のユーザーを1つ用意してください。
API実行用のユーザーはCybozu.comのシステム管理権限が必要です。
Node.jsのJavaScriptファイル
- 後述の index.js の内容をコピーして配置してください。
- request-promiseを使用していますので、必要に応じてnpm installでインストールしてください。
環境を作成する
アップロード用Zipファイルの作成
index.jsを開いて、以下の項目を記入して保存します。
|
|
| 項目 | 設定値 |
|---|---|
| ROOMID | Cisco Webex Messagingの会議室のID Get Room Details |
| BEARER | Cisco Webex MessagingのbotアカウントのAccess Token webex for Developers 【補足】 OAuth 2.0を利用した認証も可能です。複数のアカウントに関連する操作を行いたい場合や、APIへのアクセス権を制限したい場合などには、OAuth 2.0を利用する必要があります。詳細は、 Authentication |
| CYBOZU_AUTH | cybozu.comのAPI実行用のユーザーのログイン名とパスワードです。 「ログイン名:パスワード」をBASE64エンコードしたものを入力してください。 |
| DOMAIN | kintoneのドメイン |
| SPARK_MADDRESS | Cisco Webex Messagingのbotアカウントのメールアドレス |
入力したら、以下のコマンドでzipファイルを作成します。
zipファイルの名前は、getPostingUser.zipとします。
|
|
AWSの設定(Lambda,API Gateway)
AWS の Lambda と API Gateway を設定します。
詳細については
AWSの設定(Lambda, API Gateway)
を参考にしてください。
確認する
Cisco Webex Messagingの会議室から実際に確認してみましょう。
注意
botアカウントで確認した場合、プログラムは作動しません。
Cisco Webex Messagingから「こんにちは」と入力します。
数秒待つとbotが投稿内容、e-mail、Cybozu.comのログイン名、表示名を返します。
たしかに、Cisco Webex MessagingとCybozu.comでユーザー連携が行われているとわかりました。
応用編
今回は、メールアドレスでユーザーを連結しましたが、Cisco Webex MessagingのDisplay NameとCybozu.comのログイン名で連結させることも可能です。
JavaScript
index.js
|
|
このTipsは、2016年6月の段階のCisco Webex Messagingのバージョンで動作を確認しています。
