【发布时间】:2017-11-26 13:38:36
【问题描述】:
我正在尝试找出向用户发布临时消息然后将其删除并替换为所有人可见的消息的机制。与 giphy 类似的行为,其中 Slash 命令显示交互式临时消息并在用户决定发送哪个 gif 时创建通道消息。我也对更新临时消息感到好奇。如果我们使用交互式临时消息,我认为这可以通过 response_url 来完成。
我最初认为我只是使用chat.postEphemeral 创建一个临时消息,然后在其上调用chat.delete,但似乎chat.delete 和chat.update 不能在使用chat.postEphemeral 创建的消息上调用.
Slack 消息指南似乎建议应始终以短暂的方式处理多步骤交互流,以便其他频道用户在结果之前看不到所有中间消息,但我运气不好弄清楚如何完成后摆脱短暂的。可能只是不擅长阅读,但任何帮助表示赞赏。
编辑更多细节:
关于使用 response_url 和 postEphemeral 状态的文档
当您使用 chat.update 或 replace_original 替换消息时 选项,您不能将消息的类型从短暂更改为 in_channel。消息发出后,将保留其 生活的可见性质量。
消息指南建议:
如果用户启动了包含多个步骤的操作,则这些步骤 应显示为仅对该用户可见的临时消息,直到 整个动作完成,以避免混乱的通道 大家。
大概,我应该能够创建一个交互,在该交互中我首先发送一条 in_channel 交互消息。
- 当用户启动操作时,我应该能够使用
response_url并传递response_type: 'ephemeral'和replace_original: false向他们发送一系列临时消息? - 以这种方式创建的新的临时交互消息将有自己的
response_url用于进行编辑,对吧? - 通过临时消息完成交互流程后,我可以使用其原始 response_url 修改原始交互消息吗?
- 最后,我如何摆脱最后的临时编辑?还是我只是将其更改为“工作流程已完成”之类的内容并希望获得最好的结果?我之所以问,是因为 Slash 命令显然似乎有一种方法可以从本质上将临时消息替换为 in_channel 消息,而我正在尝试弄清楚这种工作流程。
【问题讨论】:
标签: slack-api