かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

Bot Builder SDK v4 の OAuthPrompt を使って出したログインボタンが Microsoft Teams で反応しない

しないんですけど!?下の issue の通りみたい。

github.com

まじかぁ…

The sign in card's button has an ActionType of signin and teams does not support this ActionType. In order to make this work as present time you need to go in and change the ActionType to ActionType.OpenUrl There are a few other issues discussing this one is #2104

この issue で提示されてる解決策は v3 ベースっぽいので v4 ではそのまま使えないくさい。 ということで、OAuthPrompt.cs をリポジトリからこぴってきて。

botbuilder-dotnet/OAuthPrompt.cs at master · Microsoft/botbuilder-dotnet · GitHub

SendOAuthCardAsync メソッドで2か所 SignIn の ActionTypes を使ってる箇所があるので OpenUrl に変えます。 そしてオリジナルの OAuthPrompt を使ってる箇所を、自分で作成したオレオレ OAuthPrompt に差し替えれば動きます。

もうちょっと詳しく Bot Builder SDK v4 の処理を追うと、issue でやってるようにメッセージ送信途中で何かしら処理をフックしてアクションを書き換えることで対応できるんじゃないかと思ってますが、とりあえずの方法としてはこれで…。