Slack API:select 对话成员,同时过滤掉没有 n+1 的机器人
Slack API: select conversation members while filtering out bots without n+1
我需要 select 不是机器人的对话的所有成员。看起来这样做的方法是先调用 conversations.members
and then for each member call users.info
。使用 slack ruby 客户端,归结为:
client = Slack::Web::Client.new(token: "MY-OAUTH-TOKEN")
# returns an array of user ids
response = client.conversations_members(channel: "#some-channel", limit: 500)
member_ids = response.members
members = member_ids.reject do |member_id|
# returns a https://api.slack.com/types/user object
user = client.users_info(user: member_id)
user["user"]["is_bot"] == true
end
这显然提出了一个 n+1
问题。我想知道我是否忽略了一个更好的 API 方法来调用,或者一个 API 方法参数可以帮助解决这个问题,无论是通过 slack-ruby-client,还是仅仅通过香草 API 方法。
遗憾的是,目前 Slack 没有针对您的问题陈述的单一 API 调用解决方案。
我需要 select 不是机器人的对话的所有成员。看起来这样做的方法是先调用 conversations.members
and then for each member call users.info
。使用 slack ruby 客户端,归结为:
client = Slack::Web::Client.new(token: "MY-OAUTH-TOKEN")
# returns an array of user ids
response = client.conversations_members(channel: "#some-channel", limit: 500)
member_ids = response.members
members = member_ids.reject do |member_id|
# returns a https://api.slack.com/types/user object
user = client.users_info(user: member_id)
user["user"]["is_bot"] == true
end
这显然提出了一个 n+1
问题。我想知道我是否忽略了一个更好的 API 方法来调用,或者一个 API 方法参数可以帮助解决这个问题,无论是通过 slack-ruby-client,还是仅仅通过香草 API 方法。
遗憾的是,目前 Slack 没有针对您的问题陈述的单一 API 调用解决方案。