【问题标题】:MS Teams Chat Bot - Unable to reach app. Please try againMS Teams 聊天机器人 - 无法访问应用程序。请再试一次
【发布时间】:2021-05-30 20:10:13
【问题描述】:

我在聊天机器人中的特定输入表单用户上调用 MS Teams 机器人中的第三方 REST API。 有时,第三方 REST API 响应时间比平时慢。在这种情况下。 MS Teams 使用红色警告图标向用户显示以下消息 - “无法访问应用程序。请重试。” 然而,在红色警告的几秒钟内,团队会在聊天窗口中显示 API 成功返回的正确数据。

如何在 Teams 聊天机器人中优雅地处理由调用外部 REST API 引起的延迟导致的此类场景(“红色警告”)。我必须修改 Microsoft Teams 应用程序中的任何超时值以消除此类警告吗?

谢谢!

【问题讨论】:

    标签: bots warnings delay microsoft-teams rest


    【解决方案1】:

    可能会出现 10 或 15 秒的超时,如果出现这种情况,我认为这会导致您看到的情况。在https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-howto-long-operations-guidance?view=azure-bot-service-4.0 中查看更多信息,其中声明:

    如果机器人未在 10 到 15 秒内完成操作,取决于通道,Azure 机器人服务将超时并向客户端报告 504:GatewayTimeout,如机器人工作原理中所述。

    简而言之,一个简单的方法可能是:

    1. 让您的机器人立即发回消息
    2. 在某处(例如 Azure)的队列中排队长时间运行的操作,并使用后台处理器来处理它(例如 Azure Function)
    3. 操作完成后,让后台处理器发送主动消息

    文章中的示例提供了一些指导,一个示例来处理这样的长时间运行的操作,使用另一种方法和对话框等。

    更新: 这实际上可能会为对话提供一些有用的背景信息,因此请查看主动消息传递如何适应:https://hilton.giesenow.com/how-bot-calls-actually-work

    更新 2:这是一个相对较新的主动消息传递示例,希望它有用:https://github.com/pnp/teams-dev-samples/tree/master/samples/bot-proactive-messaging

    【讨论】:

    • 感谢您的回复。我确实尝试了文章“长期操作指南”中的方法。但是,我无法让后台处理器在 MS Teams Bot 中发送主动消息。请参阅我之前关于该问题的 2 篇关于 stackoverflow 的帖子。 stackoverflow.com/questions/65353154/…stackoverflow.com/questions/65409285/…
    • 是的,我以为我认出了你的名字!请参阅上面的更新
    • 谢谢!我将检查主动消息传递示例。
    猜你喜欢
    • 1970-01-01
    • 2020-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    相关资源
    最近更新 更多