MS Teams 聊天机器人 - 无法访问应用程序。请再试一遍

MS Teams Chat Bot - Unable to reach app. Please try again

我正在 MS Teams Bot 中针对聊天机器人中的特定输入表单用户调用第三方 REST API。 有时,第三方 REST API 响应时间比平时慢。在这种情况下。 MS Teams 使用红色警告图标向用户显示以下消息 -“无法访问应用程序。请重试。” 在红色警告的几秒钟内,Teams 在聊天 windows.

中显示 API 成功返回的正确数据

如何在 Teams Chat Bot 中优雅地处理由于调用外部 REST APIs 引起的延迟而导致的此类情况(“红色警告”)。我必须修改 Microsoft Teams 应用程序中的任何 time-out 值以消除此类警告吗?

谢谢!

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

If the bot does not complete the operation within 10 to 15 seconds, depending on the channel, the Azure Bot Service will timeout and report back to the client a 504:GatewayTimeout, as described in How bots work.

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

  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