【问题标题】:Get list of channels a user is a member of获取用户所属的频道列表
【发布时间】:2017-12-11 21:57:11
【问题描述】:

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

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

【问题讨论】:

    标签: slack slack-api


    【解决方案1】:

    我认为users.conversations 是您正在寻找的。如果没有其他参数,它将返回调用用户所属的所有公共频道。

    【讨论】:

    • 这个新端点已于 2018 年 4 月推出,并且正在完成这项工作。容易得多。
    【解决方案2】:

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

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

    使用conversations,您必须对每个频道进行额外调用才能获取用户所属的所有频道。但是,它可以同时与所有类型的频道(例如公共频道、私人频道)一起使用。

    基本做法是:

    1. 获取来自conversations.list的所有对话列表

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

    因此,如果您希望您的 Slack 应用能够面向未来并与大量用户一起工作,最好使用 conversations 方法来完成您的任务。

    【讨论】:

    • 感谢您的信息。尤其是成员被截断并最终被删除的提示。这是一个内部机器人,所以它并不是一个大问题,但我不能只为用户获取频道列表,这仍然有点奇怪。
    • 我同意,但没有任何其他的办法。自然,您会希望它成为users.info 的一部分,但事实并非如此。我想我会向 Slack 发送一封邮件来询问这个功能。尤其是使用新的对话方法,您需要进行太多调用才能获取该信息。
    猜你喜欢
    • 1970-01-01
    • 2023-01-26
    • 2016-10-25
    • 1970-01-01
    • 2018-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多