【问题标题】:How can a Slack app communicate to the user why a slash command failed, and let the user edit the command?Slack 应用程序如何与用户沟通斜杠命令失败的原因,并让用户编辑命令?
【发布时间】:2020-06-04 03:26:32
【问题描述】:

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

【问题讨论】:

    标签: error-handling slack slack-api


    【解决方案1】:

    是的,但您不得使用 HTTP 状态代码来共享失败的搜索。

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

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

    发送错误响应

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

    在这种情况下,返回 HTTP 500 响应会很诱人 初始命令,但这不是正确的方法。状态 作为对命令的响应返回的代码只能用于 表示请求 URL 是否成功接收到数据 有效载荷 - 虽然在处理过程中可能发生了错误,并且 响应该有效载荷,通信本身仍然 成功的。 (Source)

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

    【讨论】:

    • 我会接受您的回答,即如果您可以指出文档中说不可能的地方,这是不可能的。或者也许在 Slack 工作的人会这么说。
    • 很公平。我在文档中添加了讨论错误响应并证明我的答案是正确的部分。如果您仍需要 Slack 的官方答复,则需要向他们发送支持请求。他们不会回答 SO。
    猜你喜欢
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 2021-03-09
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多