Slack:检索所有消息

时间:2015-03-02 20:23:42

标签: slack-api

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

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

6 个答案:

答案 0 :(得分:20)

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

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

message archive export screen

答案 1 :(得分:11)

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

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

您需要安装的只是slacker模块,它只是pip install slacker。然后使用--token='secret-token'运行它。您需要一个旧令牌,目前可用here

答案 2 :(得分:10)

对于寻找直接消息历史记录下载的任何人,基于this节点的cli工具允许您以JSON和CSV格式下载来自DM和IM的消息。我已经习惯了,而且效果很好。

答案 3 :(得分:1)

使用新的Conversations API,现在可以轻松完成此任务。这是完整的概述:

从频道获取消息

新的API方法conversations.history将允许您从每种会话/渠道(公共,私人,DM,Group DM)下载消息,只要您的令牌可以访问它即可。

此方法还支持分页,使您可以下载大量消息。

将ID解析为名称

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

获取线程

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

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

答案 4 :(得分:1)

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

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

  • 克隆并安装要求并运行 SlackPirate
  • 在浏览器上打开 slack 并复制名为 d 的 cookie 的值
  • 运行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'

答案 5 :(得分:0)

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

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

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