如何获取访问令牌并使用它

Posted

技术标签:

【中文标题】如何获取访问令牌并使用它【英文标题】:How to get access token and use it 【发布时间】:2020-11-24 10:45:14 【问题描述】:

我正在使用 C# 为 Microsoft 团队创建机器人。我有一个在模拟器中运行良好的示例代码 (basic echo bot)。我在团队应用工作室中创建了一个应用,并在 Bot 部分输入了我的 API 端点。我下载包并将其作为自定义包上传到团队中。

现在,当我添加此应用并尝试与 Bot 通信时,我在 API 中收到未经授权的错误(使用 ngrok)。我猜这里发生的事情是我没有访问令牌,即当有人安装它时,团队应该给你访问令牌,对吧?

我不知道团队将如何向我提供访问令牌以及访问令牌将在流程中的什么位置使用?

所以基本上,当有人点击团队应用商店中的“添加”按钮时,访问令牌是如何传递的。

@update

注意:-我也完成了应用注册。

所以我在 Azure 中注册了机器人频道并添加了我的 ngrok 端点。我在 appsettings 文件中复制了“MicrosoftAppId”和“MicrosoftAppPassword”。它在模拟器以及 Azure 机器人管理门户中的“网络聊天测试”中运行良好。我还将它从门户本身连接到 Teams 频道。当我从频道链接导航到团队时,我的机器人按预期工作。

之后,我打开了 app studio 并输入了所有详细信息。在 Bot 部分,我选择了现有的 bot id 并从 azure 输入了我的 MicrosoftAppId,它可以正常工作。

我仍然不明白的是,当有人安装应用程序时,团队应该会向我的端点发送一些信息,对吧?

【问题讨论】:

出于测试目的,我也创建了一个 Azure 机器人,它工作正常,但我不知道在 Teams 中进行通信 ClientId/ClientSecret 设置是否正确? 能否分享您的代码? 你必须在你的机器人项目的appsettings.json文件上添加你的clientId和secreot。 @DeveshTiwari 您需要在应用程序配置页面中添加客户端 ID 和客户端密码。客户端 ID 是您从 App Studio 创建 Bot 时获得的 Bot 的 ID。客户端密码是您创建的 Bot 的密码。 【参考方案1】:

如果无法访问您的代码,就很难/不可能确定问题的原因。

我建议您改用其中一个共享的 Teams 机器人示例来重新开始:

57.teams-conversation-bot

如果您确实需要在您的机器人中进行身份验证:

Authentication flow for bots - Teams | Microsoft Docs

46.teams-auth

52.teams-messaging-extensions-search-auth-config

该仓库中还有很多其他团队的示例:

50.teams-messaging-extensions-search 51.teams-messaging-extensions-action 53.teams-messaging-extensions-action-preview 54.teams-task-module 55.teams-link-unfurling 56.teams-文件上传 57.teams-conversation-bot 58.teams-start-new-thread-in-channel

【讨论】:

以上是关于如何获取访问令牌并使用它的主要内容,如果未能解决你的问题,请参考以下文章

如何从机器人聊天中获取 Twitter OAuth 访问令牌/秘密?

如何获取设备访问令牌并执行多个 HTTP POST 请求

如何从 auth0 中的访问令牌中获取 jwt 令牌

如何在java中解码访问令牌并获取用户名和电子邮件?

如何使用访问令牌获取 Facebook 用户 ID

如何使用 jQuery 或 php 从 Instagram 令牌获取访问令牌