使用context.Activity.CreateOAuthReplyAsync从Microsoft Teams中的bot显示Office 365身份验证对话框

问题描述 投票:0回答:1

我正在使用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);
authentication oauth botframework microsoft-teams
1个回答
0
投票

您是否为机器人创建了清单,并在validDomains[]阵列中包含token.botframework.com?确保您已按照here记录的所有说明进行操作,看看是否有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.