Slack中global shortcut提交modal后如何向触发时聚焦频道发ephemeral message
实现方案
你要的效果可以通过Slack官方提供的标准能力实现,Asana也是用的这套逻辑:
- 全局快捷方式触发时的交互payload中自带
response_url字段,该字段天然绑定用户触发快捷方式时正在浏览的活跃频道上下文,不需要你额外解析频道信息 - 调用
views.open拉起modal时,把上面拿到的response_url存入modal配置的private_metadata字段,该字段内容会在用户提交modal时原样返回给你的服务端 - 接收modal提交的请求后,从返回的payload中提取
private_metadata里的response_url,向该地址发送携带消息内容的POST请求即可
补充说明
response_url默认有效期为15分钟,完全覆盖普通modal的填写提交周期- 通过该
response_url发送的消息默认就是仅触发用户可见的ephemeral类型,无需额外配置参数,如果你需要发送全频道可见的公开消息才需要主动设置response_type: in_channel - 该方法不需要额外申请频道读取类权限,也不需要调用额外的API查询用户活跃频道,准确性100%
内容的提问来源于stack exchange,提问作者devlord
相关产品推荐
相关产品推荐

