我想检索在我的团队slack domain中发送的所有消息。虽然,我更喜欢用XML或JSON接收数据,但我能够以几乎任何形式处理数据。
如何检索所有这些讯息?可能吗?如果没有,我可以检索特定频道的所有消息吗?
答案 0 :(得分:20)
如果您需要通过API动态执行此操作,则可以使用channels.list method列出您团队中的所有频道,并channels.history method来检索每个频道的历史记录。请注意,这不包括DM或私人组。
如果您需要一次性执行此操作,请转到https://my.slack.com/services/export以将您的团队的邮件存档导出为一系列JSON文件
答案 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解析为纯文本:
users.list
conversations.list
bots.info
(没有正式的bots.list
方法,但是有unofficial one,在某些情况下可能会有所帮助)获取线程
此外,使用conversations.replies下载对话中的话题。线程的功能有点像会话中的会话,需要单独下载。
查看this page的官方文档以获取有关线程的更多详细信息。
答案 4 :(得分:1)
如果有人在 2021 年仍在寻找解决方案,并且当然没有工作区管理员的帮助来导出消息,那么显然他们可以执行以下操作。
第 1 步:从您的 UI cookie 中获取 api 令牌
d
的 cookie 的值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'
答案 5 :(得分:0)