闲社服务运行正常AI智能体自动化平台
s

Slack线程导出

技能标识:slack-thread-export

Export Slack thread messages from a logged-in Slack web tab into CSV using an attached Chrome Browser Relay tab. Use when the user wants to collect Slack conversations by person, channel, or time range; exclude DMs/comments; archive thread activity; or turn Slack search results into reusable CSV/JSONL datasets. Especially useful for requests like "export this user's work-related thread messages", "collect Slack thread history into CSV", or "crawl Slack from my logged-in browser session".

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 0.2.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

Slack线程导出

Slack 线程导出

当需要从真实已登录浏览器标签页(而非机器人令牌或管理 API)导出 Slack 数据时,使用此技能。

范围与非目标

此技能特意针对通过已连接的 Chrome 浏览器中继标签页进行已登录 Slack Web 导出进行了优化。

它擅长:

  • - 跨选定频道导出单个用户的线程回复
  • 从 Slack 搜索构建 CSV/JSONL 存档
  • 按频道/日期缩小结果范围,并可选择减少非工作噪音
  • 通过可恢复的原始输出和失败频道重试来应对部分失败

它不旨在:

  • - 作为通用的 Slack 管理/导出替代方案
  • 作为基于机器人令牌或 SCIM 的导出工具
  • 作为保证完整的法律/合规存档
  • 作为与工作相关消息的通用分类器

工作流程

  1. 1. 确保用户已通过浏览器中继连接 Slack 标签页,并使用 profile=chrome。
  2. 使用浏览器工具或 openclaw browser --browser-profile chrome 确认已连接的标签页是正确的 Slack 工作区。
  3. 从 Slack 标签页读取 localStorage.localConfig_v2,以获取 Web 客户端使用的活跃团队元数据和 xoxc 令牌。
  4. 在页面上下文内部使用 fetch(/api/search.messages, ...) 查询 Slack 的内部 search.messages 端点,以便已登录的浏览器会话提供正确的 cookie/会话上下文。
  5. 以小批量导出:
- 优先按频道逐个查询,而非一次大型查询。 - 优先逐页循环(count=100,递增 page)。 - 遇到 ratelimited 时通过休眠/重试进行退避。 - 当 count == 0 或 < 100 时停止。
  1. 6. 在写入文件前排除不需要的记录:
- 丢弃 IM/MPIM 结果。 - 当用户需要线程回复时,仅保留其永久链接包含 thread_ts= 的记录。 - 应用用户要求的业务过滤器(频道白名单、关键词过滤器、日期范围等)。
  1. 7. 保存两种文件:
- 用于审计/调试的原始 JSONL - 用于用户实际交付物的清洗后 CSV

工作原理

此技能不主要依赖抓取可见的 Slack DOM 行。相反,它利用 Slack Web 使用的相同内部搜索流程:

  1. 1. 连接到用户已登录的 Slack 浏览器标签页。
  2. 从 localStorage.localConfig_v2 读取活跃工作区元数据。
  3. 仅在页面上下文内部重用 Web 客户端的 xoxc 令牌。
  4. 从已连接的 Slack 页面调用 fetch(/api/search.messages, ...),使请求继承浏览器会话 cookie 和客户端上下文。
  5. 逐页浏览 Slack 搜索结果并将其转换为可导出的行。

这比主机端请求更可靠,因为 Slack 搜索通常同时需要令牌和实时登录的浏览器会话。

操作数字与限制

除非有明确理由不这样做,否则使用以下默认值:

  • - 每个 search.messages 请求使用 count=100
- 这是此处 Web 客户端路径使用的实际最大批次大小。
  • - 正常页面请求之间使用 sleep-seconds=0.5
  • 遇到 ratelimited 时,在重试同一页面之前至少休眠 3-5 秒
  • 每个频道以 max-pages=60 作为实际上限
  • 优先一次处理 1 个频道或短白名单,而非扫描整个工作区

实用指南:

  • - 通常安全: 1 个用户 + 1 个频道 + 1-20 页
  • 仍然合理: 1 个用户 + 3-10 个频道 + 带 0.5 秒延迟的分页
  • 有风险: 跨整个工作区的一次性全历史查询
  • 非常危险: 一次大型页面上下文评估,在一次调用中循环处理多个频道和多个页面

为何重要:

  • - 如果请求过快或查询范围过广,Slack 将返回 ratelimited。
  • 如果一次评估调用中打包了太多工作,浏览器评估可能会超时。
  • 最安全的形式是多次短调用,而非一次大型调用。

实际验证内容

这些并非仅理论上的说法;该工作流程已针对真实已登录的 Slack 标签页进行了实践验证。

小范围验证

测试形式:

  • - 频道:tech-team、moonlight、dev-part
  • 范围:after=2026-03-01、before=2026-03-15
  • 模式:strict

观察结果:

  • - tech-team:9 行
  • moonlight:29 行
  • dev-part:0 行
  • 原始总数:38
  • 唯一原始数:38
  • 失败频道:0
  • 总请求数:3
  • 持续时间:~5.05 秒

这验证了:

  • - --before
  • --after
  • --channel-file
  • --summary-json
  • --failed-channels-out
  • --resume-from-jsonl
  • --preflight
  • strict 模式

启发式过滤验证

为证明 heuristic 模式比 strict 模式做得更多,第二次测试包含了边缘频道:

  • - tech-team
  • moonlight
  • random
  • music
  • ai서비스활용-lounge

观察结果:

  • - strict:保留 50 行
  • heuristic:保留 40 行
  • 被启发式过滤移除:10 行

- random:9
- music:1

被移除的示例是休闲/非工作项目,如闲聊式线程回复、庆祝帖子和一个 YouTube 链接。这证实了当包含混合频道时,启发式模式可以减少明显的非工作噪音。

压力验证

一次更广泛的运行使用了以下频道:

  • - moonlight
  • dev-part
  • tech-team
  • bob
  • cms

压力设置:

  • - max-pages=20
  • sleep-seconds=0.05
  • 模式:heuristic

观察结果:

  • - 原始总数:4580
  • 过滤后保留:2763
  • 总请求数:48
  • 持续时间:~85.52 秒
  • 速率限制重试:0
  • 失败频道:0

解读:

  • - 逐频道/逐页设计在适度激进的运行下保持稳定。
  • 这不保证在所有工作区中免于速率限制。
  • 但这确实表明该设计比一次大型搜索/评估调用更稳健。

重要约束

  • - 不要假设仅凭 xoxc 令牌即可从主机 Python 直接调用 Slack API。实际上浏览器会话上下文很重要;首先从页面上下文调用。
  • 不要首先尝试一次大型全历史查询;Slack 速率限制和长时间浏览器评估会超时。
  • 如果频道级调用失败,不要声称导出是完整的。清晰报告部分覆盖情况。
  • 将 xoxc 令牌和任何 cookie 视为敏感信息。不要将其回显给用户或存储在导出的文件中。
  • 不要在未明确说明的情况下将与工作相关悄然扩大为包含所有内容。如果用户想要所有与工作相关的线程,请明确说明这是启发式的,除非他们还提供了频道白名单、日期范围或关键词规则。
  • 不要将启发式过滤呈现为审核、合规、人力资源或法律级别的分类。

发布就绪状态

在此阶段,当尊重以下注意事项时,该技能适用于测试版/发布候选用途:

  • - 需要通过浏览器中继连接已登录的 Slack Web 标签页
  • 依赖可能随时间变化的 Slack Web 客户端行为
  • 除非选择 strict 或 raw 模式,否则对类似工作的导出使用启发式过滤
  • 最适合操作员主导的导出,而非无人值守的合规存档

如果公开发布,请将其描述为高级/浏览器中继 Slack 导出技能,而非通用 Slack 导出解决方案。

失败语义

明确处理失败:

  • - invalid_auth
- 含义:错误的标签页、已注销的标签页或缺少浏览器会话上下文的主机端请求。 - 修复:确认已连接的 Slack 标签页已登录,并从页面上下文重新运行。
  • - ratelimited
- 含义:请求过快或查询范围过广。 - 修复:休眠并重试同一页面;减少频道数量;添加 after: 日期过滤器。
  • - 浏览器评估超时
- 含义:一次评估调用中打包了太多工作。 - 修复:按频道和页面拆分;保持每次评估简短。
  • - 部分导出
- 含义:部分频道完成,部分失败。 - 修复:保存原始进度,报告已完成的频道,仅重试失败的频道。

推荐

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 slack-thread-export-1776105252 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 slack-thread-export-1776105252 技能

通过命令行安装

skillhub install slack-thread-export-1776105252

下载

⬇ 下载 slack-thread-export v0.2.0(免费)

文件大小: 12.62 KB | 发布时间: 2026-4-15 14:26

v0.2.0 最新 2026-4-15 14:26
Add resumable exports, failed-channel retry helper, preflight estimation, mode selection, operational guidance, and validation notes for Browser Relay-based Slack thread export.
返回顶部