【问题标题】:slash command "dispatch_failed"斜杠命令“dispatch_failed”
【发布时间】:2020-08-31 05:12:12
【问题描述】:

我已经通过 slack 创建了自定义斜杠命令配置并将其安装在工作区上。但是,当我运行它时,我得到了 /testing 失败并出现错误“dispatch_failed”

我尝试了多个工作区但同样的问题。有人经历过吗?

【问题讨论】:

  • 我上周重构的斜杠命令也面临同样的问题。
  • 我想通了。我将发布我的问题的解决方案

标签: slack slack-api slack-commands


【解决方案1】:

所以经过几次测试后,我发现这只是在这一点上任何失败的通用消息。我首先有我无法到达的端点。所以它正在返回此消息。我修复了这个问题,将 ngrok 用于隧道,以便我可以调试,这就是我发现这个问题的原因。

此外,由于以下原因也可能发生此错误。

  • 代码错误
  • 应用程序中无法访问后端或配置无效的斜杠命令

【讨论】:

    【解决方案2】:

    虽然文档告诉您:

    "使用请求 URL 是你的基础服务器链接 + "/slashcommand" 之后"

    这是不正确的。请求 URL 应为:“/slack/events”

    当然,命令需要与“编辑命令”窗口中的内容和 app.js 中的“.command”方法中的内容相匹配:

    app.command('/flash-card', async ({ ack, body, client })

    【讨论】:

    【解决方案3】:

    如果您使用ngrok http <port> 在您的 localhost 中进行测试,请注意每次运行此命令时都会创建一个新的 ngrok 公共 URL。因此,在https://api.slack.com/apps 中,在您应用的功能中,您可能需要使用为您生成的当前 ngrok URL 更新您的 Slash Command 请求 URL。

    【讨论】:

      【解决方案4】:

      您需要将Integration Settings中的Method设置为GET,默认为POST

      【讨论】:

        【解决方案5】:

        这也是 404 Not Found 的错误。

        如果你用ngrok离线开发,在终端可以看到404错误。

        如果您使用 serverless 进行部署,请确保您正在处理新端点 /slack/command。一种解决方案是创建一个单独的处理程序, /command.js

        functions:
          slack:
            handler: app.handler
            events:
              - http:
                  path: slack/events
                  method: post
          command:
            handler: command.handler
            events:
              - http:
                  path: slack/command
                  method: post
        

        【讨论】:

          猜你喜欢
          • 2021-07-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-07
          • 1970-01-01
          • 2022-10-05
          • 2022-12-04
          • 2014-03-21
          相关资源
          最近更新 更多