我正在尝试使用python创建一个Slack Bot,我有一个问题,我无法从特定频道获取用户,我只有在接受所有用户时才会成功。基本上我只想要那些(例如随机通道)。 到目前为止,我试图从每个用户那里获取团队的ID并将其与频道ID进行比较,但由于每个人都拥有相同的ID并且我无法弄清楚原因,因此失败了。 以下是代码片段:
def users_of_the_channel():
global slack_client
#this is the variable which is initialized with SlackClient(BOT_TOKEN)
api_call = slack_client.api_call( "users.list",channel="C0XXXXXXX")
if api_call.get('ok'):
channels = api_call.get('members')
for channel in channels:
print ("this is cool : ", channel['team_id'])
我认为问题在于,当我初始化api_call
变量时,我使用users.list
参数调用该函数,我尝试使用usergroups.list
和usergroups.users.list
,但没有成功。
基本上要保持简短,我需要通道中的用户列表,文档没有帮助我。
答案 0 :(得分:2)
users.list
不会将渠道ID作为您在API调用中提供的输入。
Slack为不同的团队提供不同的机器人令牌。 只需使用需要用户列表的团队的机器人令牌调用api,您将获得成员列表。
client = SlackClient(SLACK_BOT_TOKEN)
request = client.api_call("users.list")
if request['ok']:
for item in request['members']:
print item['name']
有关可以通过api调用提供的可选参数的更多详细信息,请参阅文档(https://api.slack.com/methods/users.list)。
答案 1 :(得分:0)
您可能可以使用新的conversations
API来检索该API(特别是conversations.members
端点):
https://api.slack.com/methods/conversations.members