【问题标题】:Sending Proactive Messages on Microsoft Teams with Bot framework使用 Bot 框架在 Microsoft Teams 上发送主动消息
【发布时间】:2021-02-23 12:15:24
【问题描述】:

我在使用机器人框架构建的 Teams 上安装了聊天机器人。我正在使用 Azure DevOps 更新对机器人的更改。

我想向关注此Microsoft documentationexample code 的用户发送主动消息。但我不知道如何调用 /api/notify 端点。

如何从我的代码中调用 https://xxxxxx.azurewebsites.net/api/notify 以向 Teams 上的用户发送主动消息?

【问题讨论】:

    标签: asp.net-core azure-devops botframework microsoft-teams


    【解决方案1】:

    我不喜欢这个示例的一件事是,它使您看起来需要托管 -ability- 才能在与您的机器人本身相同的网络主机内进行主动调用,这绝对不是必需的.例如,您可以将机器人托管在 Web 应用程序中,但直接从 Azure 函数进行主动调用。这就是我将不同样本放在一起的原因之一 - 请查看 here。它只需要一个服务 url(例如,因为端点可以根据租户的地理位置而改变)和一个“对话 id”,以便它知道要向哪个用户/组/频道发送消息。请检查一下,看看是否有帮助。

    【讨论】:

    • 感谢@Hilton 的链接。该机器人已安装在 Teams 上,当调用这些方法 OnMembersAddedAsync 和 OnConversationUpdateActivityAsync 时,我不记得存储用户信息。虽然我仍然通过 Azure DevOps 持续交付对机器人进行更新。我后来在机器人中实现了主动消息。当我推送更新时,机器人没有发送消息。我的挑战是如何访问 Teams 上的 /api/notify 端点,因为它正在使用 Bot 模拟器。
    • 就像您在 Teams 上创建了一个选项卡来发送主动消息一样,当我下次通过 Azure CD 推送更新时,代码中是否没有任何地方可以调用发送消息的方法?由于 OnConversationUpdateActivityAsync 和 OnMembersAddedAsync 仅在添加用户时或在团队上安装机器人时调用一次。提前感谢您的回复。
    • 获取所需信息的最佳位置是 OnConversationUpdateActivityAsync / OnMembersAddedAsync ,因为这样您就可以立即获得它,而无需任何用户参与。但是,您需要的信息(服务 url 和对话 ID)随 -every- 消息一起提供,因此任何时候用户向机器人发送消息时,您都可以获得它们。基本上,只需将代码添加到常规消息处理程序以获取它们,然后向您的机器人发送消息。
    • 这行得通,@Hilton。但每次用户向机器人发送消息时,机器人都会继续发送主动消息。当我将代码添加到常规消息处理程序时,知道如何让机器人发送一次消息吗?
    • 对于阅读本文的任何人,@HiltonGiesenow cmets 都在现场。如果您遇到困难,您可能也想阅读他的 cmets。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 2017-08-20
    • 2020-11-10
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多