Botframework 使用MS团队作为通道:身份验证对话框(来自Microsoft.Bot.Builder.Dialogs的GetTokenDialog类)不会';t弹出窗口

Botframework 使用MS团队作为通道:身份验证对话框(来自Microsoft.Bot.Builder.Dialogs的GetTokenDialog类)不会';t弹出窗口,botframework,azure-bot-service,Botframework,Azure Bot Service,如何在MS团队中使用Bot Builder中的新身份验证功能 团队似乎存在问题(请参阅or),如果GetTokenDialog中没有考虑到这一点,会不会 有没有机会解决这个问题?刚刚找到了它无法与团队合作的原因。在方法Microsoft.Bot.Connector.Activity.CreateOAuthReplyAsync()中,MSTeams的参数assignInAction()必须设置为True,然后,行new CardAction(){Title=buttonLabel,Value=li

如何在MS团队中使用Bot Builder中的新身份验证功能

团队似乎存在问题(请参阅or),如果GetTokenDialog中没有考虑到这一点,会不会


有没有机会解决这个问题?

刚刚找到了它无法与团队合作的原因。在方法Microsoft.Bot.Connector.Activity.CreateOAuthReplyAsync()中,MSTeams的参数assignInAction()必须设置为True,然后,行
new CardAction(){Title=buttonLabel,Value=link,Type=ActionTypes.Signin}
必须更改为
new CardAction(){Title=buttonLabel,Value=link,Type=ActionTypes.OpenUrl}
因为MS团队显然无法处理动作类型签名。希望微软的开发人员能尽快修复这个方法。

刚刚找到了它不能与团队合作的原因。在方法Microsoft.Bot.Connector.Activity.CreateOAuthReplyAsync()中,MSTeams的参数assignInAction()必须设置为True,然后,行
new CardAction(){Title=buttonLabel,Value=link,Type=ActionTypes.Signin}
必须更改为
new CardAction(){Title=buttonLabel,Value=link,Type=ActionTypes.OpenUrl}
因为MS团队显然无法处理动作类型签名。希望微软的开发人员能尽快修复这个方法。

要让这个方法发挥作用,您需要做一些事情。首先,您需要在teams和whitelist token.botframework.com中为您的bot创建一个清单文件。这是第一个问题

从AppStudio中的团队本身创建清单。我不得不在这件事上玩弄一下。在AppDetails中。。。让它生成一个新的ID。只需点击按钮。URL对于测试来说并不重要。包名只需要是唯一的,比如com.ilonatag.teams.test

在bots部分,插入MS AppId和bot名称。这是代码中来自bots MicrosoftAppId“value=”from web.config的真实MSAPPID

好了,现在在“完成->有效域”中,我添加了token.botframework.com和我的bot的URL以防万一。比如franktest.azurewebsites.net

这部分已经完成,但您还没有完成。。。在messages controller中,您需要添加此项,因为团队发送的验证与其他客户端不同

if (message.Type == ActivityTypes.Invoke)
{
                // Send teams Invoke along to the Dialog stack
                if (message.IsTeamsVerificationInvoke())
                {
                    await Conversation.SendAsync(message, () => new Dialogs.RootDialog());
                }
}

为了解决这个问题,我花了很多时间与微软进行交流

要想让它发挥作用,您需要做几件事。首先,您需要在teams和whitelist token.botframework.com中为您的bot创建一个清单文件。这是第一个问题

从AppStudio中的团队本身创建清单。我不得不在这件事上玩弄一下。在AppDetails中。。。让它生成一个新的ID。只需点击按钮。URL对于测试来说并不重要。包名只需要是唯一的,比如com.ilonatag.teams.test

在bots部分,插入MS AppId和bot名称。这是代码中来自bots MicrosoftAppId“value=”from web.config的真实MSAPPID

好了,现在在“完成->有效域”中,我添加了token.botframework.com和我的bot的URL以防万一。比如franktest.azurewebsites.net

这部分已经完成,但您还没有完成。。。在messages controller中,您需要添加此项,因为团队发送的验证与其他客户端不同

if (message.Type == ActivityTypes.Invoke)
{
                // Send teams Invoke along to the Dialog stack
                if (message.IsTeamsVerificationInvoke())
                {
                    await Conversation.SendAsync(message, () => new Dialogs.RootDialog());
                }
}

为了解决这个问题,我花了很多时间与微软进行交流

在MS团队中使用OAuthCard是一个已知的问题。要解决此问题,您可以使用此

将按钮ActionType从signIn更改为openUrl。在MS团队中使用OAuthCard是一个已知的问题。要解决此问题,您可以使用此

将按钮ActionType从signIn更改为openUrl。您指的是已关闭的旧票据(2017年初)(使用解决方案)。您是否可以添加问题的更多详细信息并添加一些代码来显示问题的位置?问题是:在团队中,当您单击要弹出身份验证对话框的登录按钮时,不会发生任何事情。在代码方面,这只是对GetTokenDialog的调用:private GetTokenDialog CreateGetTokenDialog(){返回新的GetTokenDialog(ConnectionName,$“请为{ConnectionName}进行身份验证。”,“Login”,2,“那不起作用-再试一次!”;}-因此,我猜这个问题必须在该函数的代码中解决。添加问题的代码示例可能有助于获得响应。当使用MS团队作为通道时,调用GetTokenDialog(在Microsoft.Bot.Builder.Dialogs中提供的函数)不起作用-具体来说,单击显示的“登录”按钮不会像使用本地仿真器时那样弹出单独的身份验证对话框:
private GetTokenDialog CreateGetTokenDialog(){返回新的GetTokenDialog(ConnectionName,$“请为{ConnectionName}登录”,2,“重试!”;}
您指的是已关闭(使用解决方案)的旧票据(2017年初)。您是否可以添加问题的更多详细信息并添加一些代码来显示问题的位置?问题是:在团队中,当您单击要弹出身份验证对话框的登录按钮时,不会发生任何事情。在代码方面,这只是对GetTokenDialog的调用:private GetTokenDialog CreateGetTokenDialog(){返回新的GetTokenDialog(ConnectionName,$“请为{ConnectionName}进行身份验证。”,“Login”,2,“那不起作用-再试一次!”;}-所以我想这个问题必须在函数的代码中解决。添加一个问题的代码示例可能有助于