Slack应用程序如何与用户交流斜杠命令为何失败的原因,并让用户编辑该命令?

时间:2020-04-27 20:53:46

标签: error-handling slack slack-api

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

1 个答案:

答案 0 :(得分:1)

是的,但是您不能使用HTTP状态代码来组织失败的搜索。

总是返回HTTP OK 200,然后添加一条响应消息,告诉用户出了什么问题。您可以在3秒内直接回复来自Slack的请求,或者通过向response_url发送消息来做到这一点。

在斜杠命令的官方文档中也清楚地表达了这一点:

发送错误响应

有时候,您需要让用户知道出了点问题-也许用户在命令旁边提供了错误的text参数,或者API用来生成命令响应的失败

在这种情况下,很容易将HTTP 500响应返回 初始命令,但这不是正确的方法。状态 作为对命令的响应而返回的代码仅应用于 指示请求URL是否成功接收了数据 有效负载-虽然在处理和 响应该有效负载,通信本身仍然 成功。 (Source

据我所知,不可能向Slack表示用户应该可以编辑其最后一条命令。