【问题标题】:Slack dialog doesn't close after form submission提交表单后 Slack 对话框未关闭
【发布时间】:2018-02-09 22:10:00
【问题描述】:

我创建了一个松弛对话框/表单来收集用户的一些信息;表单呈现得很好,我可以毫无问题地填写表单,但是单击提交后它并没有关闭,而是给出了错误:

我们在连接时遇到了一些问题。再试一次?

我已经发回了一个 200 状态 OK,就像在 documentation 中一样。

// menu is the end point of my interactive messages
app.post('/menu', (req, res) => {
  console.log('from form submission:', req.body.payload)
  res.sendStatus(200);
})

可能出了什么问题?我可以看到我的应用程序的控制台日志,仅供参考。

【问题讨论】:

    标签: node.js express slack


    【解决方案1】:

    发送 200 OK 是不够的。

    它还必须为空或包含正确格式的输入验证错误列表,如 JSON。如果您的回复包含任何其他文本(例如警告消息),则会产生此错误。

    正如文档中所说:

    当提交无异常时,您的应用必须响应 200 OK,身体空空。这将完成对话框。

    【讨论】:

    • 优秀。这行得通。要更清楚。我使用了res.send(),它关闭了对话框。
    • 目前还不清楚如何摆出那个姿势。你能详细说明你是如何工作的吗?我目前正在使用res.send(200),然后尝试res.sendStatus(200)
    • @JustinRice 如上面评论中所述,res.send() 可以解决问题
    • 对于那些仍然遇到此错误的人,尤其是 Flask 应用程序 - 我发现将响应 mimetype 设置为 '' 解决了这个问题。
    【解决方案2】:

    我遇到了类似的问题(使用 golang 而不是 JS)。响应 200 并没有帮助,不管有没有正文,但是响应 204 代码并且没有正文解决了问题。

    【讨论】:

    • 这个答案对我有帮助,我正在使用 ruby​​ 并且遇到了类似的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多