2017-10-14 77 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)。

相關問題