如何避免松弛命令超时错误?

新手上路,请多包涵

我正在使用 slack 命令(python 代码在这后面运行),它工作正常,但这会出错

This slash command experienced a problem: 'Timeout was reached' (error detail provided only to team owning command).

如何避免这种情况?

原文由 Vikas Saini 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 758
1 个回答

根据 Slack slash 命令文档,你需要在 3000ms(三秒)内响应。如果您的命令花费的时间更长,那么您会收到 Timeout was reached 错误。您的代码显然不会停止运行,但用户不会对他们的命令有任何响应。

三秒对于您的命令可以即时访问数据的快速操作来说是可以的,但如果您正在调用外部 API 或做一些复杂的事情,则可能不够长。如果您 确实 需要更长的时间,请参阅文档的 延迟响应和多重响应 部分:

  1. 验证请求没问题。
  2. 立即返回 200 响应,可能类似于 {'text': 'ok, got that'}
  3. 去执行你想做的实际动作。
  4. 在原始请求中,您获得了一个唯一的 response_url 参数。使用后续消息向该 URL 发出 POST 请求:
    • Content-type 需要 application/json
    • 将正文作为 JSON 编码的消息: {'text': 'all done :)'}
    • 您可以返回临时响应或频道内响应,并添加与即时方法相同的附件

根据文档,“在用户调用后的 30 分钟内,您最多可以响应用户命令 5 次”。

原文由 rcoup 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题