Bot,Development, 開発, 未分類

作った Bot に Teams 経由で話しかける

こんにちは!SecretaryBot を開発している、A’ です。

前回の記事ではシンプルな Bot を作成しましたが、このままだと Bot Framework Emulator 経由でしか作った Bot と会話できません。Emulator  上で動作確認できた後は、Facebook Messenger、Skype、Slack、Microsoft Teams 等 (Channel と呼びます)  から Bot に話しかけて動作確認してみたいですよね。そこで今回は対応している Channel の種類の確認と、例として Teams、Skype 経由で Bot と会話する方法を確認してみましょう!

<目次>

  1. 対応している Channel の種類
  2. Teams、Skype 経由で Bot にアクセスしてみよう

1.対応している Channel の種類

公式ドキュメントのこの記事を参照してください。グローバルに使われている Channel はほぼサポートしています。一般ユーザー向けには、Skype 、Facebook Messenger、法人向けには  Slack、Teams 等に展開するのがよいと思います。基本的にサポートされている Channel に対しては、 コード側で個別のカスタマイズ不要で展開できます。

ところで、Bot Framework では何故、個別のカスタマイズ不要で多数のChannel に対応できるのでしょうか。

理由としては下図のとおり、作成した Bot  と Channel の間に Bot Connector というコンポーネントが存在し、このコンポーネントが Channel 間の違いを吸収してくれるからです。

本来は、Skype から Bot に渡される データ構造と、Slack から Bot に渡されるデータ構造は異なります。逆に Bot から、それぞれの Channel へ返答する際のデータ構造も異なります。このため Connector が無ければ各 Channel と Bot 間のデータの送受信には、個別対応が必要になりますが、Bot Connector がその辺りの違い吸収してくれていますので、開発者は、Channel 間の違いを気にせずに開発を進めることが可能です。(勿論、意図的に Channel 毎に挙動を変えたい場合、Channel 毎の挙動をコードで定義することも可能です。)

publish0.png

なお、この記事の公開時点では日本人に最も馴染みのある LINE に関する記載はありません。LINE も含めてここに記載の無い他の Channel に対応するための一般的な方法としては、Direct Line 3.0 REST API を使います。 この方法を使うと REST API 経由で Connector と作った Bot との通信が可能です。詳細については、公式ドキュメントのこの記事を確認してください。

2. Teams、Skype 経由で Bot にアクセスしてみよう

Teams、Skype 経由で Bot にアクセスするには以下の2つの作業が必要になります。

2-1. Bot アプリケーションを Web 上に公開する
2-2. Bot の登録後、各 Channel の連絡先に追加する

それぞれ順に確認していきましょう!

2-1. Bot のアプリケーションを Web 上に公開する

前回の記事で作った Bot を Azure の Web Apps  に公開します。Azure のサブスクリプションを持っていない人はここで入手することが可能です。(無料で使えるプランもあります。)

<事前準備>

Azure 上で Web Apps を一つ作成し、下記の画面ショットのように [発行プロファイルの取得] をクリックします。”<インスタンス名>.PublishSettings” というファイルがダウンロードされます。

publish2

<手順>

  1. 前回の記事で作成した一問一等 Bot のソリューションを Visual Studio で開きます。以下の画面ショットのようにソリューション エクスプローラー上の [Bot Application] を右クリックし、[公開] を選択します。

publish

  1. 下の画面ショットのように “<事前準備>” で取得した、発行プロファイル”<インスタンス名>.PublishSettings” を指定し [OK] をクリックします。

publish3

  1. [発行] をクリックします。正常に完了すると、ブラウザが起動し、下記のような画面が表示されます。

publish4

 

2-2. Bot の登録後、各 Channel の連絡先に追加する

作成した Bot を Microsoft が持つ Bot 専用の登録ページに登録し、Teams、Skype に追加してみましょう。

1. この記事 の “Microsoft Bot Framework サイトで BOT 登録&Web Chatを設定” から “再度 Azure にアップロード” までを実施します。完了すると以下のような ページが表示されます。

publish41

  1. 疎通確認を行います。[Test] ボタンをクリックし “Endpoint authorization succeeded” が返ってくるか確認します。もしエラーとなる場合には以下の点を確認してみてください。

ここまで追われば、任意の Channel へ追加することが可能です。以下では Teams、Skype への追加手順をみていきましょう。

<Teams への追加手順>

  1. 下図の通り、”Add another channel” の項目の中の “Microsoft Teams” の [Add] をクリックします。

addToteams

  1. “Configure Microsoft Teams” の画面で [I’m configuring with Microsoft Teams] をクリックします。

configuringMSteams

  1. [Add to Teams] をクリックします。その後 Teams を起動され、Bot が追加されます。最後に作成した Bot に対して “What time is it now?” と入力し、返答が返って来たら成功です!

teamsDemo

<Skype への追加手順>

Bot を Skype へ追加する方法は非常に簡単です。Teams 同様に Bot のページの [Add to Skype] をクリックすると Skype の連絡先一覧に Bot が追加されます。最後に下図のように Bot に対して “What time is it now?” と入力し、こちらも返答が返って来たら成功です!

publish6.png

これで一問一答を行うための Bot は公開できました。が、ぶっちゃけた話まだ会話はできてないですよね。次回は会話を実装する方法を紹介します!(マサさんが…w)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中