【问题标题】:How to combine slash commands, buttons and dialogs for a menu?如何为菜单组合斜杠命令、按钮和对话框?
【发布时间】:2018-11-10 19:03:04
【问题描述】:
我的 Slack 应用程序以 slash command 启动,然后它会向用户发布一条临时菜单消息。该菜单包含一些信息和三个消息按钮。
例子:
- 第一个按钮允许用户关闭菜单
- 第二个按钮允许用户开始操作
- 第三个按钮允许用户打开dialog 进行更改
选项。
用户提交对话框后,我想更新菜单消息以反映对话框中所做的更改。
但是,在用户提交对话框后,我无法再像以前那样通过响应 Slack 响应来更新消息菜单。
如何使用更改更新菜单消息?
【问题讨论】:
标签:
slack
slack-api
slack-dialog
【解决方案1】:
为了保持与初始斜杠命令的连接,需要在打开对话框之前存储最后一个交互操作的response_url。
在本例中,它将在按下“选项”按钮后发起的交互动作请求中。 response_url 允许人们无缝地继续使用初始斜杠命令开始的对话。
存储response_url 的最简单方法是将其放入对话框的state 属性中,该属性将自动以dialog submission request 回显到应用程序。
需要注意不要将交互操作中的response_url 与对话框中的response_url 混淆。
此外,对话框取消情况会自动处理,因为在这种情况下,用户可以继续使用初始菜单消息。