error-handling - Slack 应用程序如何与用户沟通斜杠命令失败的原因,并让用户编辑命令?
问题描述
当应用程序无法处理 Slack斜杠命令时,文本会被带回以允许用户对其进行编辑并立即再次发送。我有一个搜索的斜杠命令,但可能找不到任何结果。在这种情况下,我希望用户能够立即修改他们的搜索。Slack 文档解释说我应该始终返回200
HTTP 状态,但随后 Slack 也会删除命令,用户无法立即重试。当我尝试以404
状态响应时,用户会收到一条警告消息,例如failed with the error "http_client_error"
. 有没有办法失败但也向用户提供自定义消息,为什么?
解决方案
可以,但您不得使用 HTTP 状态代码来社区失败的搜索。
只需始终返回 HTTP OK 200,然后添加一条响应消息,告诉用户出了什么问题。您可以通过在 3 秒内直接回复来自 Slack 的请求,或者通过向response_url
.
这在斜杠命令的官方文档中也有明确表达:
发送错误响应
有时您需要让用户知道出现问题 - 可能用户在命令旁边提供了不正确的文本参数,或者用于生成命令响应的 API 出现故障。
在这种情况下,向初始命令返回 HTTP 500 响应会很诱人,但这不是正确的方法。作为对命令的响应返回的状态代码应仅用于指示请求 URL 是否成功接收数据负载 - 虽然在处理和响应该负载时可能发生错误,但通信本身仍然成功。(来源)
据我所知,不可能向 Slack 发出信号,表明用户应该能够编辑他的最后一个命令。
推荐阅读
- javascript - 如何让 Angular 组件知道您的外部 javascript 文件?
- javascript - 尝试在需要管道的子进程中运行 git 命令
- javascript - 在 Javascript 中解析 HTMLHtmlElement
- r - 如何在 R CvM2SL2Test 包中安装(Cramer-von Mises 两个示例测试)
- mongodb - 平均值 mongodb
- ruby-on-rails - 如何使用 faker gem 生成假食品名称?
- c# - 在 Unity 中为 Android 构建时出现错误 CS0012
- angular - JwtModule 不添加授权标头
- android - 为什么在 Android Studio 3.3 的预览选项卡中显示模糊 xml 视图
- excel - 当有一个 IF 语句时合并多个 then 语句