我正在使用Microsoft Bot Framework创建一个bot。机器人在Office 365中使用企业资源,因此我需要身份验证。如果僵尸程序的用户未经过身份验证且访问令牌不存在,则僵尸程序会使用context.Activity.CreateOAuthReplyAsync提示用户登录。在bot模拟器中,所有这一切都很好。将显示Office 365身份验证对话框,并且访问令牌可用。
不在Microsoft Teams中。在Microsoft Teams中,卡显示,但是当我点击“登录”按钮时,没有任何反应。我做了一个快速编辑,通过channelId来区分频道。我在stackoverflow上发现了一篇文章,将参数asSignInCard设置为true,但也没有任何反应。我需要做什么才能在Microsoft Teams中获取Office365的身份验证对话框?
我的代码是这样的:
Activity reply = null;
if (context.Activity.ChannelId.ToLower().CompareTo("msteams") == 0)
{
reply = await context.Activity
.CreateOAuthReplyAsync(connectionName, "Hit \"Sign in\" and enter your Office 365 credentials.", "Sign in", true)
.ConfigureAwait(false);
}
else
{
reply = await context.Activity
.CreateOAuthReplyAsync(connectionName, "Hit \"Sign in\" and enter your Office 365 credentials.", "Sign in")
.ConfigureAwait(false);
}
await context.PostAsync(reply);
context.Wait(MessageReceived);
您是否为机器人创建了清单,并在validDomains[]
阵列中包含token.botframework.com?确保您已按照here记录的所有说明进行操作,看看是否有帮助。