使用Slack API获取所有私有频道的列表

时间:2016-06-07 22:59:46

标签: python slack-api

我一直试图获得Slack团队中所有“团体”的列表。但是,即使使用admin privs,groups.list也只提供令牌所有者帐户所属的组。

我在研究中看到的最接近的解决方案是让机器人坐在频道中。机器人的会员资格允许它报告频道,但是后来存在将机器人引入每个私人频道的后勤问题,尽管我们无法以编程方式列出它们。

我用来挖掘私人频道列表的代码:

import requests
import json

token = '...'

r = requests.post('https://slack.com/api/groups.list', data={'token': token, 'exclude_archived': 1})
if r.ok:
  privatechannels = { c['id']: c['name'] for c in json.loads(r.text)['groups'] }
  print(privatechannels)

2 个答案:

答案 0 :(得分:5)

松弛privacy policy不支持此功能。

  

我们遵循的最基本的隐私原则是默认情况下,   您发布给Slack的任何内容都是您团队的私密内容。也就是说,观看   特定团队中共享的消息和文件需要   身份验证作为该团队的成员。

     

该公司即将推出的付费Plus计划将包含一项可选功能   称为合规出口,将允许   管理员访问他们团队的通信,包括公众   和私信。

最接近您不属于的私人频道,但需要书面信函...... here for more details

答案 1 :(得分:3)

如果您确实需要实时监视Slack工作区中的所有专用频道(和DM),则可以采用另一种方法:

  • 确保Slack上的每个用户都为您的应用提供令牌。每个用户可以通过一次为您的应用程序完成OAuath安装过程来完成此操作。这样会为每个用户创建新令牌,您的应用可以收集这些令牌。
  • 遍历所有活动用户令牌以编译所有列表 与conversations.list
  • 的对话(公共频道,私人频道,直接消息等)
  • 遍历所有现有对话-使用对该对话有效的令牌-使用conversations.history收集所有消息