如何组合菜单的斜杠命令、按钮和对话框?

How to combine slash commands, buttons and dialogs for a menu?

我的 Slack 应用程序以 slash command 启动,然后向用户发布一个临时菜单消息。该菜单包含一些信息和三个消息按钮。

示例:

用户提交对话框后,我想更新菜单消息以反映在对话框中所做的更改。

但是,在用户提交对话框后,我无法再像以前那样通过响应 Slack 响应来更新消息菜单。

如何使用更改更新菜单消息?

为了保持与初始斜杠命令的连接,需要在打开对话框之前存储最后一个交互操作的 response_url

在此示例中,它将在按下 "Options" 按钮后启动的交互操作请求中。 response_url 允许人们无缝地继续使用初始斜杠命令开始的对话。

存储 response_url 的最简单方法是将其放入 state property of the dialog, which will automatically be echoed back to the app with the dialog submission request

需要注意不要将交互操作中的 response_url 与对话框中的 response_url 混淆。

此外,对话框取消的情况会自动处理,因为在这种情况下用户可以继续使用初始菜单消息。