Microsoft Teams App-通过Bot发布通知

时间:2019-09-06 16:31:23

标签: ms-office access-token microsoft-teams

我有一个Microsoft Teams应用程序。目前,该应用正在开发中。我不想提交应用程序以供批准。但是,我确实希望将仅通知机器人集成到我的应用程序中。目前,我正在尝试通过此漫游器测试此应用的通知。但是,我被卡住了。

据我了解,要发布通知,我需要:

  • 获取访问令牌
  • 获取我的机器人的不记名令牌
  • 开始对话
  • 发布消息

如果我在这方面有误,请告诉我。无论哪种方式,我都停留在步骤1上。当尝试从https://login.microsoft.com/botframework.com/oauth2/v2.0/token获取访问令牌时,我收到一条错误消息:

Application with identifier '{guid}' was not found in the directory 'botframework.com'. This can happen if the application has not ben installed by the administrator of the tenant or consented to by any user in the tenant.

由于我已使用App Studio中的Test and Distribute按钮从Install选项卡安装了该应用程序,因此我认为这满足了我(我的租户中的用户)同意使用的需求。该应用程序。但是,我想因为没有将应用提交到商店,所以无法通过https://login.microsoft.com/botframework.com/获得令牌。这是真的?如果是真的,我应该使用另一个端点吗?如何获得我正在积极开发/测试的Team App中的机器人代币?

1 个答案:

答案 0 :(得分:0)

Microsoft BotFramework Bot在确保连接安全时始终需要具有应用程序ID和应用程序密码。此ID和密码已在Azure门户中注册(该门户会将信息传递到botframework.com)。

您可以在没有ID和密码的情况下在本地测试Bot,但是当尝试集成MS Teams等其他渠道时,您将需要配置这些ID和密码...

通常,您可以通过将它们传递到您的ICredentialProvider来完成此操作:

services.AddSingleton<ICredentialProvider>(provider => new SimpleCredentialProvider(appId, appPassword))

您无需以任何方式发布Bot。只需在Azure门户中创建应用注册,然后使用应用ID和密码即可。

请始终记住,Teams App和BotFramework Bot没有共同之处。 BotFramework与频道无关。只有MS Teams应用程序知道存在带有您的应用程序ID(在manifest.json中配置)的Bot。

MS团队(emea.ng.msg.teams.microsoft.com),BotFramework(token.botframework.com)和您的Bot(xxx.azurewebsites.net甚至ngrok ...)之间的连接通过应用程序ID和密码来保护。 所以永远不要告诉任何人您的应用密码是什么。