放課後に居残って夜

調べたこと、気になったことなどをアーカイブする場所にしたい。 This is a place to throw a quick learn, study, and research of my random interests.

Microsoft TeamsのBotを作るときに知っておきたかったこと

Power Virtual Agent、Bot Framework SDK、QnA Maker、Bot Framework Composerなど、ボットを作ろうと思って調べていくとツールと思われるものがたくさん出てきました。どれが何で、どうやってBotが作られるのか、そしてTeamsへの追加はどうするのか、TeamsのチームでメンションさせたときにBotを起動するのはどうするのか、など見極めが大変でしたので、メモしておきます。(1/7/2022現在)

どのツールを使えばよいのか

ずばりこちらに答えがあります!

docs.microsoft.com

 

ざっくり言ってみると:

  • Power Virtual Agentは、ローコードで直感的にデザインできるので、サクッと作ろうと思ったときや手始めに良さそうです。作ったボットを公開するときはPower Appsポータルからと記載があります。Power Automate(Microsoft製品との親和性が高く、また他ツールの連携も簡単に記載できる、処理のフローを作成するツール)も同じツール内機能のような感覚で使えます。
  • QnA Makerは、Azure Botサービスがベースとなっています。ドキュメントファイルなどから質問を読み取って、まさにQ&Aのボットを作るときに適したもののようです(あまり試せていない)。
  • Bot Framework Composerも、Azure Botサービスがベースです。Bot Framework SDKガリガリとコードを書きながら開発するのではなく、それに近いけどもローコードのインターフェースを持っていて開発しやすいIDEのような位置づけと思います。

上の記事には、どのツールを選ぶべきか、のヒントも記載されています。

 

参考URL:

1.Azure Botサービスと、QnA Maker、Teams連携を実現するちょまどさん(@chomado)の記事。スクショが完璧でわかりやすいです。前編でAzure Bot作成周り、後編でボット作成とTeams連携が触れられています。

#私は後編の3-1: Visual Studio に Botframework テンプレートのところでテンプレートがどうしても出てこず断念しています。。。

zenn.dev

2.Teams上で、Power Virtual Agentを作ってみよう、なチュートリアル(公式)

docs.microsoft.com

 

メンション!(アットマークでボットに声を掛けたい!)

先にあげた参考記事を実施すると、Teamsにボットとして左側などにアイコンとともに登場して、そのボットを選択し、ボットー自分で個別にやり取りをする、なーんてことは可能になりました。

 

ここでやりたかったのは、チーム(Teams上で複数人が入っているチャットの集まり。「チーム名」ー「一般」がデフォルトで存在する)でのチャットのときに、@でそのボットを呼び出したい。

#それをどうするかがしばらくわからなかった。すでにボットそのものは入っているように見えるので、これをそのまま呼び出せるんじゃないか、とかトライした結果、これをやるには、カスタムアプリとして他の人も使えるように追加する必要がありました。ボットはインストール済のように見えるのに、更に追加するっていうところが飲み込めなかったのですが、多分自分には見えているけど、他の人向けに展開する、という位置づけなのかと思います。

 

というわけで、@でボットをメンションするには、カスタムアプリとして配布をします。先に上げた1の参考記事では、後編の項目5でそれに触れられています。こちらではマニフェストを手で作成する形で紹介されていました。

TeamsではApp Studioアプリを使って、この作業を画面上でできます。ここに触れているのが以下記事です。

 

3.Teams でメンションすると Planner タスクを作成してくれる bot を Power Virtual Agents で作る37jotter.wordpress.com

 

この記事を基に補足をすると、

(1)Set up a botの項目で、ScopeにPersonalだけでなくTeam、Group Chatを選択しておくと、意図したことが実行できます。

(2)記事の通りですが、App Studioから直接Installもできそうなのですが、権限関係でエラーに私もなりましたので、一旦Downloadします。ここでzipファイルができますので、これをTeamsから「カスタムアプリをアップロード」で指定します。Teams画面左下の「アプリ」をクリックして表示される画面から、「カスタムアプリをアップロード」をクリックすると実施できます。

f:id:spheremonk0126:20220107121759p:plain

カスタムアプリをアップロード

(3)この方法で追加したアプリは、「開く」ボタンの横に▼が出て「チームに追加」が選べるようになります。

f:id:spheremonk0126:20220107122146p:plain

チームに追加

こうすると、チームのチャット内で、このボットをメンションで呼び出せます!!

f:id:spheremonk0126:20220107122644p:plain

メンションで呼び出す

私はここまでくるのに2週間くらい掛かってしまいましたが、見えて北ので次に進めそうです。どなたかの参考になると嬉しいです。