是否有可通过频道名称查询channel ID的API?如何获取频道成员ID?
通用实现方案
1. 按频道名称查询channel ID
目前主流的协作通讯平台(Slack、Discord、飞书等)均支持通过公开API实现该需求:
- Slack 调用
conversations.list接口,可传入exclude_archived=true过滤已归档频道,遍历返回的频道列表匹配name字段,即可拿到对应channel id - Discord 调用指定服务器的
guild.channels接口,在返回的频道集合中匹配name字段,就能提取到目标频道的id - 飞书 调用「获取频道列表」开放接口,遍历返回结果匹配
name字段,取对应open_id即为需要的channel ID
2. 通过channel ID查询频道内成员ID
拿到channel ID后直接调用对应平台的成员查询接口即可:
- Slack 调用
conversations.members接口,传入上一步获取的channel ID,接口会直接返回该频道所有成员的ID数组 - Discord 调用
channel.members接口,传入channel ID后从返回的成员列表中提取id字段即可 - 飞书 调用「获取频道成员列表」接口,传入channel ID后可从结果中获取所有成员的
user_id或open_id
最简实现步骤
不用额外集成第三方工具,按以下逻辑写短脚本即可完成需求:
- 提前申请对应平台的开发者访问令牌,给令牌开通频道列表读取、频道成员读取的权限
- 调用频道列表接口拉取全量可访问的频道数据,筛选出和你已知名称完全匹配的频道,记录其ID
- 将拿到的channel ID作为入参传给成员查询接口,直接提取返回结果中的成员ID字段即可
小提示:如果目标是私有频道,需要确保你使用的令牌有该私有频道的访问权限,否则拉取频道列表时无法匹配到目标频道。
内容的提问来源于stack exchange,提问作者Rasika
相关产品推荐
相关产品推荐

