かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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 でやってるようにメッセージ送信途中で何かしら処理をフックしてアクションを書き換えることで対応できるんじゃないかと思ってますが、とりあえずの方法としてはこれで…。