我想检索在我的团队 slack 域中发送的所有消息。虽然,我更喜欢以 XML 或 JSON 格式接收数据,但我能够以几乎任何形式处理数据。
我怎样才能检索所有这些消息?可能吗?如果没有,我可以检索特定频道的所有消息吗?
我想检索在我的团队 slack 域中发送的所有消息。虽然,我更喜欢以 XML 或 JSON 格式接收数据,但我能够以几乎任何形式处理数据。
我怎样才能检索所有这些消息?可能吗?如果没有,我可以检索特定频道的所有消息吗?
如果您需要通过 API 动态执行此操作,您可以使用channels.list 方法列出团队中的所有频道,并使用channels.history 方法检索每个频道的历史记录。请注意,这不包括 DM 或私人群组。
如果您需要一次性执行此操作,请转到https://my.slack.com/services/export将团队的消息存档导出为一系列 JSON 文件
这个 Python 脚本通过简单的运行将所有内容导出到 JSON: https ://gist.github.com/Chandler/fb7a070f52883849de35
它为您创建目录,您可以选择排除直接消息或频道。
您只需要安装 slacker 模块,它就是pip install slacker
. 然后用--token='secret-token'
. 您需要一个遗留令牌,目前可在此处获得。
对于寻找直接消息历史下载的任何人,此基于节点的 cli 工具允许您以 JSON 和 CSV 格式从 DM 和 IM 下载消息。我用过,效果很好。
有了新的对话 API,这项任务现在变得更容易了。这是一个完整的概述:
从频道获取消息
conversations.history
只要您的令牌有权访问,新的 API 方法将允许您从每种类型的对话/频道(公共、私人、DM、组 DM)下载消息。
此方法还支持分页,允许您下载大量消息。
将 ID 解析为名称
请注意,此方法将仅返回带有 ID 的原始 JSON 格式的消息,因此您需要调用其他 API 方法来将这些 ID 解析为纯文本:
users.list
conversations.list
bots.info
没有官方bots.list
方法,但有一个非官方的方法,在某些情况下可能会有所帮助)获取线程
此外,使用conversations.replies下载对话中的线程。线程的功能有点像对话中的对话,需要单独下载。
查看官方文档的此页面以获取有关线程的更多详细信息。
如果有人在 2021 年仍在寻找解决方案,当然他们的工作区管理员没有帮助导出消息,那么显然他们可以执行以下操作。
第 1 步:从您的 UI cookie 中获取 api 令牌
d
python3 SlackPirate.py --cookie '<value of d cookie>'
第 2 步:转储频道消息
slackchannel2pdf --token 'xoxb-1466...' --write-raw-data T0EKHQHK2/G015H62SR3M
第 3 步:转储直接消息
slack-history-export -t 'xoxs-1466...' -u '<correct username>' -f 'my_colleagues_chats.json'