获取用户所属的频道列表

Get list of channels a user is a member of

正在编写一个 slack 机器人,我希望能够获得我的机器人所属的所有频道的列表。一种方法是调用 https://slack.com/api/channels.list,获取所有频道的(可能很大)列表,然后搜索当前(机器人)用户所属的频道。这工作正常,但看起来很笨重。

有没有更好的方法?要仅获取给定用户所属的频道?

不,没有更短的方法来获取此信息。

实际上,Slack 建议为此任务使用新的 conversations 方法,因为所有其他方法中的 members 属性,例如channels.list 最近已更改为仅 return 截断的用户列表。有关详细信息,请参阅 here

使用 conversations 时,您必须为每个频道额外调用一次才能获取用户所属的所有频道。但是,它将同时与所有类型的频道(例如 public 频道、私人频道)一起使用。

基本方法是:

  1. conversations.list

  2. 获取所有对话的列表
  3. 获取每个对话表单的成员列表conversations.members

因此,如果您希望您的 Slack 应用程序经得起未来考验并与大量用户一起工作,最好使用 conversations 方法来完成您的任务。

我想 users.conversations 就是您要找的。如果没有额外的参数,它将 return 呼叫用户所属的所有 public 个频道。