我需要选择对话的所有成员谁不是机器人。这样做的方法似乎是首先调用conversations.members
,然后为每个成员调用users.info
。使用slack客户端,可以归结为:
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方法。
发布于 2021-08-27 11:46:50
不幸的是,目前Slack没有针对您的问题语句的单一API调用解决方案。
https://stackoverflow.com/questions/68750326
复制相似问题