API 列出用户/机器人加入频道的方法
API method for listing joined channels of user / bot
Slack 是否提供允许我检索用户或机器人加入的所有频道的列表的方法?
我找不到合适的 API 方法,想避免使用默认的 channel.list 或 group.list 因为执行 2 api 调用并爬过所有频道并匹配成员 ID 的成本很高,甚至可能因为每个频道的成员数组限制而使用分页。
没有单一的 API 方法可以通过单个 API 调用为您提供用户/机器人的所有加入频道。
最快的方法(有两个 API 调用)确实是最大调用 channels.list
and groups.list
and matching the result against your user ID, however this is not the recommend approach due to the recently introduced member cap。每个频道 500 个成员。请注意,这是一个硬上限(!!),因此您无法通过分页获得额外成员。
推荐的方法是使用较新的 conversations methods,它有利于 public 和私人频道,并且 return 完整的成员列表(带分页).
但是,这种方法将需要更多 API 调用:
- 获取所有 public 和带有
conversations.list
的私人频道的列表
- 每个频道获取成员
conversations.members
每个频道
- 通过将用户 ID 与所有用户 ID 进行比较来编译每个用户的频道列表
所有频道的成员。
如果您觉得 API 中缺少此功能,我建议您向 Slack 团队发送功能请求。
Slack 是否提供允许我检索用户或机器人加入的所有频道的列表的方法?
我找不到合适的 API 方法,想避免使用默认的 channel.list 或 group.list 因为执行 2 api 调用并爬过所有频道并匹配成员 ID 的成本很高,甚至可能因为每个频道的成员数组限制而使用分页。
没有单一的 API 方法可以通过单个 API 调用为您提供用户/机器人的所有加入频道。
最快的方法(有两个 API 调用)确实是最大调用 channels.list
and groups.list
and matching the result against your user ID, however this is not the recommend approach due to the recently introduced member cap。每个频道 500 个成员。请注意,这是一个硬上限(!!),因此您无法通过分页获得额外成员。
推荐的方法是使用较新的 conversations methods,它有利于 public 和私人频道,并且 return 完整的成员列表(带分页).
但是,这种方法将需要更多 API 调用:
- 获取所有 public 和带有
conversations.list
的私人频道的列表
- 每个频道获取成员
conversations.members
每个频道 - 通过将用户 ID 与所有用户 ID 进行比较来编译每个用户的频道列表 所有频道的成员。
如果您觉得 API 中缺少此功能,我建议您向 Slack 团队发送功能请求。