我通过 Teams 在我的组织中安装了 Azure Bot。与机器人的交互运行正常。
我们有一个场景,我们需要从外部进程(在 Azure 中运行的 C# 应用程序)向我们的用户发送通知。
我尝试使用Bot Framework REST API创建与用户的对话,然后向他们发送此处概述的通知
此方案不起作用,因为我无法获取未使用全局 Bot Framework 租户的机器人的访问令牌。我们的 Bot 作为 SingleTenant BotType 安装在 Azure 租户上,因此出现以下错误:
Application with identifier 'BOT-APP-ID' was not found in the directory 'Bot Framework'
我倾注了各种选择,包括 DirectLine 通道、BotConnector SDK 和 Power Automate - 但似乎没有什么适合我的需要。
有没有办法针对我们安装的 Bot 使用 Rest API 来创建对话和发送消息?这将是理想的,因为这样我就可以直接从触发它们的事件中启动这些通知。
主动消息传递绝对是您要寻找的,但有一些重要的事情需要注意。这是一个示例https://github.com/pnp/teams-dev-samples/tree/main/samples/bot-proactive-messaging希望有用 - 我包括 C# 和 Node 版本以及一些进一步阅读的链接,这里是一个视频会议的链接,我在其中更多地讨论了这个概念:https ://www.youtube.com/watch?v=mM7-fYdcJhw&t=1398s 。
简而言之,请记住 Bot Framework 可以在许多情况下使用,Teams 只是其中之一。重要的是,与其他上下文不同,当你在 Teams 中时,没有“创建”与用户对话的概念。只有一次“对话”,而您基本上是在“继续”对话。结果,您想调用continueConversation
. 在我上面链接的同一个示例中,这里是相关行。在幕后,这确实是在调用一个 REST API,但这样包装起来更容易。
但是,如示例所示,由于您无法开始对话,只能继续对话,因此您需要确保您已经拥有对话上下文,这也可能意味着确保用户已将机器人安装到个人背景(实际上是开始对话的内容)。这是示例中发生这种情况的地方。
如果您的用户已经安装了机器人,那么它只是存储对话上下文的一种情况,就像我在示例中显示的那样。如果没有,并且您想了解如何预安装机器人,请参阅以下问题:Proactively Install / Push Apps in Teams for Multiple Users
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句