2017-10-14 15 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は、API呼び出しで提供するチャネルIDを入力として取得しません。

スラックはチームごとに異なるボットトークンを提供します。 ユーザーリストが必要なチームのbotトークンでapiを呼び出すだけで、メンバーの一覧が表示されます。あなたはAPI呼び出しを提供することができますオプションの引数の詳細について

client = SlackClient(SLACK_BOT_TOKEN) 
request = client.api_call("users.list") 
if request['ok']: 
    for item in request['members']: 
     print item['name'] 

、ドキュメント(https://api.slack.com/methods/users.list)を参照してください。

関連する問題