LoginSignup
2
2

More than 3 years have passed since last update.

Webex Teams から Microsoft Teams に Bot を移行した話

Posted at

はしがき

会社のチャットツールがWebex Teams(Webex)からMicrosoft Teams(MSTeams)に移行されました。
それに伴い、社内で利用していたBotも移行することになりました。
今回は、移行の際につまづいた点である、それぞれのBotの概念についてと、具体的なやり方について比較します。

Botという概念の比較

WebexにおけるBot

大まかにいうと、ユーザと扱いがほとんど変わりません。
スペースに対しての導入は、Bot作成時に登録するメールアドレス形式の識別子を使用してのインバイトですし、利用を止める時も、ユーザをremoveする時と同じ手順です。
これはAPI経由で同じ動作を行う際も同じで、ユーザと同じようにスペースへの追加・削除が行えます。

MSTeamsにおけるBot

Webexに比べ、こちらはとても複雑です。
MSTeamsにおけるBotは、あるアプリケーションのBot機能、というイメージです。
アプリケーションの実体はAzure上にあり、Botの機能的な実体はBotFramework上に存在します。
BotFrameworkがAzure上のアプリの認証情報を使い、いろいろ動作する、というような挙動をします。
これはWebexのBotとは異なるもので、移行の際にイメージを掴むのがとても難しい部分でした。

具体的なやり方の比較

移行対象としたBot群には以下の機能がありましたので、それぞれのやり方について記載します。
- メッセージの受信(ユーザ → Botのメンションを受ける)
- メッセージの投稿(Botからの一方的なもの)
- メッセージの投稿(ユーザからのメンションを受けてから行う)
- メンションの投稿(Bot → ユーザへのメンション)

メッセージの受信(ユーザ → Botのメンションを受ける)

Webex

メンションを受けた際のWebhook指定をすることで、メンションを受けて動作をするBotが作成可能です。

MSTeams

AppStudioなどで、BotFrameworkを利用したBot機能を持つアプリを作成することで、作成時にメンションを受けた際のWebhook指定ができます。

メッセージの投稿(Botからの一方的なもの)

Webex

Bot作成時のトークンを利用し、メッセージ送信APIを打つことで投稿可能です。

MSTeams

BotFrameworkを利用したBotのみでは、一方的なメッセージ送信を行うことはできません。
そのBotに持たせる機能がメッセージ送信のみであれば、IncomingWebhookアプリを導入することで実現可能です。
他にも機能を持たせるのであれば、GraphAPIを利用するか、BotFrameworkを併用する必要があります。

メッセージの投稿(ユーザからのメンションを受けてから行う)

Webex

メンションを受けた後、送信元のスペースIDに対してメッセージ送信APIを打つことで投稿可能です。

MSTeams

BotFrameworkを利用したBotでメンションを受け、送信元のテナント情報・会話オブジェクトを利用して送信 or 返信 APIを打つことで、投稿可能です。

メンションの投稿(Bot → ユーザへのメンション)

Webex

対象ユーザの識別子(メールアドレス)を指定することでメンション可能です。

MSTeams

対象ユーザの識別子(ID)を指定することでメンション可能です。
このIDは、BotFrameworkでのみ(?)取得できるIDで、BotFramework以外を利用したメンションは基本的にできないものと思われます。
*ユーザ識別子を静的に持っておく、などすれば可能です

おわりに

以上です。
移行部分はある程度感覚でどうにかなるものの、概念部分は読み解くのに時間がかかりました。
(というか、MSのドキュメントわかりにくすぎる・・・)
いろいろな資料や、実際の動作ベースでなんとなく理解したものなので、実際の仕様とは異なる部分があるかもしれませんが、参考になれば幸いです。

2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2