.net core 如何使用Bot Builder向第三方服务发出经过身份验证的请求?

.net core 如何使用Bot Builder向第三方服务发出经过身份验证的请求?,.net-core,botframework,microsoft-teams,.net Core,Botframework,Microsoft Teams,我正在创建一个Microsoft Team bot,它允许用户使用第三方OAuth登录,并向非Microsoft web服务发出经过身份验证的请求。我可以使用在Azure Bot服务中设置的连接,使用OAuthPrompt登录我的第三方OAuth提供商。当我进行身份验证时,我会收到一个guid,它可能是一个密钥,对应于Bot框架令牌服务中的OAuth令牌 我不清楚如何使用此guid对我的web服务发出经过身份验证的请求。各国(强调我国): 要代表用户执行某些操作。。。机器人需要调用外部服务,如M

我正在创建一个Microsoft Team bot,它允许用户使用第三方OAuth登录,并向非Microsoft web服务发出经过身份验证的请求。我可以使用在Azure Bot服务中设置的连接,使用
OAuthPrompt
登录我的第三方OAuth提供商。当我进行身份验证时,我会收到一个guid,它可能是一个密钥,对应于Bot框架令牌服务中的OAuth令牌

我不清楚如何使用此guid对我的web服务发出经过身份验证的请求。各国(强调我国):

要代表用户执行某些操作。。。机器人需要调用外部服务,如Microsoft Graph、GitHub或公司的REST服务。每个外部服务都有一种保护这些调用的方法,保护此类调用的常见方法是使用唯一标识该外部服务(有时称为JWT)上的用户的用户令牌发出这些请求

此文档向我指出,应该可以通过Bot令牌框架服务向我的web服务发出经过身份验证的请求,或者应该可以检索我的OAuth令牌,从我的Bot直接向我的服务发出经过身份验证的请求。我找不到任何人这样做的例子,我花了几天时间浏览了文档和botbuilder源代码存储库

bot应该使用来自web服务的结果响应来自用户的消息或操作。例如,如果用户粘贴到某个特定网页的链接,而该网页只有在登录后才可用,则bot将使用用户的OAuth标识创建该网页的链接预览,并将其发送到对话


我正在使用Bot Builder v4和Bot Framework Emulator。

您完全可以做到这一点。我将为您指出要查看的正确文档

首先,您需要使用。我已经准备好添加说明,让它正常工作,但要点是:

  • 将您的OAuth连接名称添加到
    appsettings.json中的
    ConenctionName
    键(以及appid/password)
  • ,确保您已将
    token.botframework.com
    添加到(注意:在App Studio中,这在
    清单编辑器>您的应用>域和权限中)

  • 一旦经过身份验证,它将返回一个令牌,并对每条消息进行验证。如果您有一个特定的OAuth提供商未在Azure门户的OAuth设置刀片中列出,并且如果他们有免费试用版,请告诉我,我可以帮助您测试它。关键是,在输入设置后,保存并单击“测试”按钮,以确保它在Azure门户中工作,然后再将其添加到您的bot。

    您是否能够使用我的答案获得此结果?如果是这样,请“接受”并投票,这样其他人可以快速找到答案,我可以从我的支持跟踪中清除这个问题。如果没有,让我知道我还能提供什么帮助!不完全是-我给你发了电子邮件,我们在那里解决了。我会在你的回答中添加一条评论。我(再次)遵循了这些说明,遇到了同样的问题。我只能通过再次创建我的应用程序注册()来实现这一点。我相信这是第一次,该应用程序是在Teams Mac桌面应用程序的app Studio中创建的。