如何获取已集成当前Slack应用的所有频道列表
Slack完全支持你需要的这个能力,你可以按以下步骤实现:
- 首先配置应用权限,在Slack应用管理后台的「OAuth & Permissions」板块,给Bot Token添加对应scope:
- 需要读取公开频道:添加
channels:read - 需要读取私有频道:添加
groups:read - 需要读取单聊、多人临时会话:按需添加
im:read、mpim:read
配置完成后需要重新将应用安装到工作区,权限才会生效。
- 需要读取公开频道:添加
- 接口调用不需要用
conversations.list拉取全量频道,直接调用users.conversations接口即可:这个接口默认返回当前调用身份(即你应用的Bot账号)已经加入的所有会话,刚好就是你要的「已集成当前应用的频道列表」,不需要额外做过滤。 - 拿到返回结果里的所有频道ID后,遍历调用
chat.postMessage接口传入对应频道ID即可完成消息推送。后续用户只要在Slack UI里将你的应用添加到目标频道,你调用users.conversations时就会自动包含新添加的频道,完全不需要提前获知频道信息。
额外补充:如果你后续需要支持向未提前添加Bot的公开频道发消息,可以额外给Bot Token添加chat:write.publicscope,无需将Bot加入频道也能正常调用chat.postMessage发消息。
内容的提问来源于stack exchange,提问作者Alb-C
相关产品推荐
相关产品推荐

