首页 > 解决方案 > Slack 应用程序如何与用户沟通斜杠命令失败的原因,并让用户编辑命令?

问题描述

当应用程序无法处理 Slack斜杠命令时,文本会被带回以允许用户对其进行编辑并立即再次发送。我有一个搜索的斜杠命令,但可能找不到任何结果。在这种情况下,我希望用户能够立即修改他们的搜索。Slack 文档解释说我应该始终返回200HTTP 状态,但随后 Slack 也会删除命令,用户无法立即重试。当我尝试以404状态响应时,用户会收到一条警告消息,例如failed with the error "http_client_error". 有没有办法失败但也向用户提供自定义消息,为什么?

标签: error-handlingslackslack-api

解决方案


可以,但您不得使用 HTTP 状态代码来社区失败的搜索。

只需始终返回 HTTP OK 200,然后添加一条响应消息,告诉用户出了什么问题。您可以通过在 3 秒内直接回复来自 Slack 的请求,或者通过向response_url.

这在斜杠命令的官方文档中也有明确表达:

发送错误响应

有时您需要让用户知道出现问题 - 可能用户在命令旁边提供了不正确的文本参数,或者用于生成命令响应的 API 出现故障。

在这种情况下,向初始命令返回 HTTP 500 响应会很诱人,但这不是正确的方法。作为对命令的响应返回的状态代码应仅用于指示请求 URL 是否成功接收数据负载 - 虽然在处理和响应该负载时可能发生错误,但通信本身仍然成功。(来源

据我所知,不可能向 Slack 发出信号,表明用户应该能够编辑他的最后一个命令。


推荐阅读