2017-10-14 109 views
1

我正在尝试使用python制作Slack Bot,并且我遇到了问题,我无法从特定频道获取用户,我只有在取得所有的用户。基本上我只想从那些(例如,随机频道)。 直到现在我试图从每个用户那里获得团队的ID并将其与一个渠道ID进行比较,但是失败的原因是每个人都有相同的ID,我无法弄清楚原因。 下面是代码的片段:获取来自特定频道的所有用户Slack API

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.listusergroups.users.list,但没有成功。 基本上要保持简短,我需要一个来自频道用户的列表,并且文档没有帮助我。

回答

2

users.list不会将频道ID作为您在API调用中提供的输入。

Slack为不同的团队提供不同的bot令牌。 只需使用需要用户列表的团队的bot标记调用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)。

相关问题