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