【问题标题】:slack slash command work but send "failed with the error "operation_timeout""slack 斜杠命令工作但发送“失败并出现错误“操作超时””
【发布时间】:2025-11-24 13:50:02
【问题描述】:

我有一个问题,可能是一个愚蠢的问题,使用 slack slash 命令。

我配置了一个 /command,简单地询问一些有关 covid 感染的数据,这些数据将在请求时获取,答案效果很好,但在几秒钟后(超时 3000 毫秒)我收到一条错误消息“失败并出现错误”operation_timeout ”。

阅读 Slack 文档我必须发送一条确认消息,我认为这是通过发送带有消息的 Post 响应来完成的,对吗?或者我必须在发送消息之前发送答案?

这是代码:

app.post('/covid', async (req, res) => {
console.log(req.body)
const respUrl = req.body.response_url
slackBody = {
    "text": "Test"
}

await axios.post(respUrl, JSON.stringify(slackBody), {
    headers: {
        'Content-Type': 'application/json',
    }
})
            .then(function (response) {
                console.log(response.data);
                console.log(response.status);
                console.log(response.statusText);
                console.log(response.headers);
                console.log(response.config);
            })
            .catch((e) => console.log(e))
})

这是 Axios 的响应。

{
  url: 'https://hooks.slack.com/commands/TU7AFJ1RU/1022360678069/tTuQ4NJhgmnb58FNPeubZUR5',
  method: 'post',
  data: '{"text":"Test"}',
  headers: {
  Accept: 'application/json, text/plain, */*',
  'Content-Type': 'application/json',
  'User-Agent': 'axios/0.19.2',
 'Content-Length': 15
},
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: 'XSRF-TOKEN',
xsrfHeaderName: 'X-XSRF-TOKEN',
maxContentLength: -1,
validateStatus: [Function: validateStatus]
}

为了这个棘手的问题,我从 8 小时开始忙得不可开交。感谢您的帮助:)


更新

亲爱的社区,我用简单的方法解决了这个问题

res.send(slackBody)

删除所有 axios 配置,现在我有简单的消息,如果我发送对象阻止松弛可视化数组而不是消息...

【问题讨论】:

  • 我遇到了同样的问题,但我使用的是 python。您能帮忙说明您在有效负载中发送的内容吗?

标签: slack slack-api slack-commands


【解决方案1】:

很高兴您已经修复了它!同时,Slack 预计 200 状态 within 3 seconds 如果没有得到任何响应,则会抛出“操作超时”错误。您还可以使用从 Slash 命令有效负载中获得的response_url 向松弛通道发送确认。更多信息,https://api.slack.com/interactivity/handling#message_responses

【讨论】:

  • 您好 HenonoaH,感谢您的回复。我尝试在 Axios 的有效负载中使用 response_url,但我收到了 2 条消息,一条带有响应,另一条带有超时错误。如果有时我对正确的消息格式有一些问题,现在使用 res.send 似乎也能很好地工作。
  • Slack 将尝试 3 次,直到您在 3 秒内发送有效响应,然后才会引发超时错误。 github.com/slackapi/python-slack-sdk/issues/…
最近更新 更多