16

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

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

在此处输入图像描述

4

5 回答 5

16

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

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

  • 代码错误
  • 应用程序中无法访问后端或无效配置的斜杠命令
于 2020-09-01T01:27:00.490 回答
8

虽然文档告诉您:

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

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

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

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

于 2021-01-13T21:11:59.417 回答
2

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

于 2021-03-19T20:29:11.960 回答
1

这也是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-10-12T16:16:45.847 回答
1

您需要将集成设置中的方法设置为GET,默认为POST

于 2021-04-03T00:10:42.573 回答