【问题标题】:Submit slack modal with block elements提交带有块元素的松弛模态
【发布时间】:2019-10-07 11:58:07
【问题描述】:

在我的模态视图中,我有两个 datePicker 元素。我知道每次交互后都会发送带有操作信息的有效负载,但是是否可以在表单提交后传递所有选定的值? 我只提出了解决方案,每次交互后,选择的值都缓存在服务器端并绑定到view_id

【问题讨论】:

标签: slack slack-api slack-commands


【解决方案1】:

您好,您可以通过将交互组件放置在输入块类型中来实现此目的。 Slack 文档说。

输入块中使用的任何交互式组件都不会发送此 block_actions 有效负载。它们仅包含在 view_submission 有效负载中。

https://api.slack.com/reference/interaction-payloads/block-actions

我在块工具包中创建的example

【讨论】:

    【解决方案2】:

    如果您不需要接收 block_actions 事件,请按照 GJoshi 的建议使用 input 块。

    但如果您确实需要 block_actions 事件,则不能使用 input 块(根据 https://api.slack.com/surfaces/modals/using#interactions)。在这种情况下,您可以通过views.update 调用将值添加到private_metadata 字段。当用户点击提交按钮时,view_submission 事件负载将包含private_metadata 字段。

    【讨论】:

      【解决方案3】:

      对于像我一样偶然发现这一点的人,上面的答案不再是最新的,因为现在 slack 允许输入块调度块动作。使用private_metadata 的方法在某些情况下仍然适用,但只需接收阻止操作就可以轻松得多。

      在定义特定的input block 时只需将“dispatch_action”设置为 true,以便在更新时接收有效负载。

      一旦用户提交,您仍然可以访问输入数据的所有值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-11
        • 1970-01-01
        • 2022-12-05
        • 1970-01-01
        • 2022-01-27
        • 2023-01-21
        相关资源
        最近更新 更多