30

我想检索在我的团队 slack 域中发送的所有消息。虽然,我更喜欢以 XML 或 JSON 格式接收数据,但我能够以几乎任何形式处理数据。

我怎样才能检索所有这些消息?可能吗?如果没有,我可以检索特定频道的所有消息吗?

4

6 回答 6

21

如果您需要通过 API 动态执行此操作,您可以使用channels.list 方法列出团队中的所有频道,并使用channels.history 方法检索每个频道的历史记录。请注意,这不包括 DM 或私人群组。

如果您需要一次性执行此操作,请转到https://my.slack.com/services/export将团队的消息存档导出为一系列 JSON 文件

消息存档导出屏幕

于 2015-03-22T23:03:47.230 回答
14

这个 Python 脚本通过简单的运行将所有内容导出到 JSON: https ://gist.github.com/Chandler/fb7a070f52883849de35

它为您创建目录,您可以选择排除直接消息或频道。

您只需要安装 slacker 模块,它就是pip install slacker. 然后用--token='secret-token'. 您需要一个遗留令牌,目前可在此处获得。

于 2016-06-14T22:24:01.597 回答
11

对于寻找直接消息历史下载的任何人,基于节点的 cli 工具允许您以 JSON 和 CSV 格式从 DM 和 IM 下载消息。我用过,效果很好。

于 2016-02-09T07:27:26.830 回答
4

有了新的对话 API,这项任务现在变得更容易了。这是一个完整的概述:

从频道获取消息

conversations.history只要您的令牌有权访问,新的 API 方法将允许您从每种类型的对话/频道(公共、私人、DM、组 DM)下载消息。

此方法还支持分页,允许您下载大量消息。

将 ID 解析为名称

请注意,此方法将仅返回带有 ID 的原始 JSON 格式的消息,因此您需要调用其他 API 方法来将这些 ID 解析为纯文本:

获取线程

此外,使用conversations.replies下载对话中的线程。线程的功能有点像对话中的对话,需要单独下载。

查看官方文档的此页面以获取有关线程的更多详细信息。

于 2018-11-01T14:24:31.080 回答
1

如果有人在 2021 年仍在寻找解决方案,当然他们的工作区管理员没有帮助导出消息,那么显然他们可以执行以下操作。

第 1 步:从您的 UI cookie 中获取 api 令牌

  • 克隆和安装需求并运行SlackPirate
  • 在浏览器上打开 slack 并复制名为 cookie 的值d
  • python3 SlackPirate.py --cookie '<value of d cookie>'

第 2 步:转储频道消息

  • 安装slackchannel2pdf (需要 python)
  • slackchannel2pdf --token 'xoxb-1466...' --write-raw-data T0EKHQHK2/G015H62SR3M

第 3 步:转储直接消息

  • 安装slack-history-export(需要节点)
  • slack-history-export -t 'xoxs-1466...' -u '<correct username>' -f 'my_colleagues_chats.json'
于 2021-06-30T08:35:44.857 回答
-1

这是从频道导出所有消息的另一个工具。

该工具称为slackchannel2pdf,它将所有消息从公共或私人频道导出到 PDF 文档。

您只需要一个具有所需范围和访问权限的令牌。

于 2019-12-31T11:54:22.350 回答