2017-12-11 16 views
0

スラックボットを書くと、私のボットがメンバーになっているすべてのチャンネルのリストを取得できます。これを行う1つの方法は、https://slack.com/api/channels.listに電話し、すべてのチャンネルの(潜在的に大きい)リストを取得し、現在の(ボット)ユーザがメンバーであるチャンネルを検索することです。これはうまく動作しますが、非常に重い手渡しのようです。ユーザーが属しているチャンネルの一覧を取得

良い方法がありますか?特定のユーザーがメンバーになっているチャンネルを取得するには?

答えて

1

いいえ、この情報を取得する方法はありません。

実際には、このタスクに新しいconversationsメソッドを使用することをお勧めします。membersのプロパティは他のすべてのメソッド(例: channels.listは、切り捨てられたユーザーリストを返すように最近変更されました。詳細については、hereを参照してください。

conversationsを使用すると、ユーザーが属するすべてのチャネルを取得するためにチャネルごとに追加の呼び出しを行う必要があります。ただし、すべてのタイプのチャンネル(パブリックチャンネル、プライベートチャンネルなど)と同時に使用できます。

基本的なアプローチは次のとおりです。

  1. conversations.list

  2. からすべての会話のリストを取得し、会話形式conversations.membersあたりのメンバーのリストを取得します。

だから、あなたはあなたのスラックのアプリが将来性あること、また、多数のユーザで作業したい場合は、より良いあなたのタスクのためのconversationsメソッドを使用します。

+0

ありがとうございました。特に、メンバーの頭が切り詰められ、最終的に取り除かれます。これは内部のボットですので、大した問題ではありませんが、ちょっとだけ奇妙なことですが、ユーザーのチャンネルのリストを取得することはできません。 –

+1

私は同意しますが、他の方法で継ぎ目がないです。当然、あなたは[users.info](https://api.slack.com/methods/users.info)の一部であると期待しますが、そうではありません。私はこの機能を求めるためにメールをスラックに送ると思う。特に、新しい会話方法では、その情報を得るためにあまりにも多くの呼び出しが必要になります。 –

関連する問題