BEACHSIDE BLOG

Azure と GitHub と C# が好きなエンジニアの個人メモ ( ・ㅂ・)و ̑̑

Azure Bot Service を Channel に接続( MS Teams 編)

前回 Question And Answer テンプレートで作った Azure Bot Serviceを、Microsoft Teams の チャンネル ( Channel ) に接続してみましょう。

Azure Bot Service で Teams のチャンネルを追加して、 Microsoft App ID で連携して接続するって方法です。

このの追加方法とは別に、Microsoft の Office Store にパブリックに公開する方法もあるような気もしてますが、そっちがなんなのかは現状興味がないので調べていません。

事前準備

前回作ったAzure Bot Service のざっくりな構成は以下です。

  • Functions Bot
  • Question and Answer テンプレート

Azure ポータルで対象の Bot Service を開き、 Test in Web Chat で動作することを確認しておきましょう。
Test in Web Chat のやり方がわからない場合は、前回の テスト in Web Chat を参照してみてください。

Channel の追加

Azure ポータルで、Channel を追加したい Bot のリソースをクリックして開きます。前回の流れではなすと、対象のリソースグループを開いて、Function Bot のリソースをクリックします。

f:id:beachside:20180124162154p:plain


左の方にある チャンネル をクリックして チャンネルに接続 というブレードが表示されます。「Add a featured channel」にある Microsoft Teams のアイコンをクリックします。

f:id:beachside:20180124162215p:plain


Terms of Service が表示されますので、問題ないことを確認して、「I agree...」にチェックをいれ、Agree ボタンをクリックします。

f:id:beachside:20180124162226p:plain


確認画面が表示されます。下の方にある 完了 をクリックするしましょう。

f:id:beachside:20180124162233p:plain


処理が終わると、チャンネルに接続 ブレードで、Micorosoft Teams が正常に接続できているか確認できます。

f:id:beachside:20180124162245p:plain


ボットのプロファイル変更

Teams で接続するので、可愛いさを出すためにプロファイルを編集してみましょう。
設定 をクリックして、ボットプロファイル ブレードを表示し、表示名や、アイコンをいい感じに設定しましょう。 あと、重要なことですが、ここで表示される Microsoft App ID を使って Teams からアクセスするので、値をコピーしておきます。

f:id:beachside:20180124162255p:plain


Microsoft Teams 側で Bot Service と接続

Microsoft Teams を起動して、新しいチャット を開きましょう(ボタンクリックするか、チャットで「新しいチャット」を選ぶかって感じですね)。

f:id:beachside:20180124162308p:plain


メンバーの入力欄にさっきコピーした Microsoft App ID を入力すると、ボットハンドルが表示されます(さっき編集した表示名じゃないだと?!)。

f:id:beachside:20180124162318p:plain


選択すると、ボットと会話ができるようになります。初回の会話にはちょっとだけ時間がかかりることがあります。
1分かからず接続できたり、3分くらいかかることもありましたので、返答が来るまで気長に待ってみましょう。

私のように、時間かかるのが分かっててメッセージを連打するのは人としてよくありません。

f:id:beachside:20180124162327p:plain


「ボットプロファイルで編集した内容は表示されんのかい!」ってツッコミはさておき、正常に接続できました。
Channel が Skype とかなら表示されるはずです(最近試してないけど...)

チャンネルへの接続を無効にする

接続したけど、ボットを停止したいって場合の手順です。

Functions Bot のブレードで チャンネル をクリックし、停止(=無効)にしたいチャンネルの 編集 をクリックします。これも何やら表示に時間がかかります(数秒から10秒以上かかることも...)。

f:id:beachside:20180124165858p:plain


画面下の 有効 と表示されているはずです。スイッチをクリックして 「無効」と変わるのを待ちます。変わったら 完了 をクリックしましょう。 チャンネルを削除したい場合は、右下の方にある チャンネルの削除 をクリックすればよいです。

f:id:beachside:20180124165921p:plain


これで少し待つとと、 Teams からアクセスしても応答もしなくなります。

再度有効にしたい場合は`、同様の操作で有効にしましょう。
このブログを書いている現時点では、無効なはずなのに有効と表示されてしまうという表示バグがあるようですが、無効/有効を切り替えて、Teams でボットの応答有無を確認するのが確実ですね....

個人的に気になったところ

Functions Bot のプログラムを更新して Azure のポータルでテストすると正常に更新されているのに、Teams では更新されないって事象がありました。なんでだろ。まー結果として、3~5分くらい待つと正常に更新されたバージョンで動くようになります(時間ははかってませんが)。(キャッシュのサーバーがたってるならわかるけど、そんなことしてるとは思えないので...)不思議だなーと感じたところですが、気長に待って作業しましょう♪