🚀 将 X(Twitter) 上的优质帖子一键保存到飞书多维表格,支持 AI 智能标签、Thread 检测、图片上传等功能。
- 📥 一键保存 - 在 X 帖子互动栏添加"保存到飞书"按钮
- 🤖 AI 智能标签 - 使用 DeepSeek AI 自动生成相关标签
- 📊 多维表格 - 数据保存到飞书多维表格,支持多种视图和筛选
- 🧵 Thread 检测 - 自动识别 Thread(连续回复),支持保存完整 Thread
- 🔍 去重检测 - 自动检查是否已保存,避免重复
- 📷 图片保存 - 自动上传帖子图片到飞书
- 📈 互动数据 - 保存浏览量、点赞数、转发数等统计数据
- 📚 历史记录 - 查看最近保存的帖子,支持删除管理
- 🗑️ 同步删除 - 可选择删除历史记录时同步删除飞书中的记录
- ✨ 无缝集成到 X 原生界面
- ✨ 智能 Thread 检测(基于连续同作者帖子)
- ✨ 支持 Wiki 知识库和独立多维表格两种模式
- ✨ 实时 Toast 反馈
- ✨ 完整的错误处理和用户提示
- 下载或克隆本项目到本地
- 打开 Chrome 浏览器,访问
chrome://extensions/ - 开启右上角的"开发者模式"
- 点击"加载已解压的扩展程序"
- 选择项目根目录
- 访问 飞书开放平台
- 创建企业自建应用
- 记录
App ID和App Secret - 配置权限:
- ✅
bitable:app- 查看、评论、编辑和管理多维表格 - ✅
wiki:wiki:readonly- 获取知识空间信息(Wiki 模式需要) - ✅
wiki:wiki.node:readonly- 获取知识空间节点信息(Wiki 模式需要) - ✅
im:message.file:send- 上传图片或文件资源
- ✅
- 在插件中填写配置并测试连接
方式一:Wiki 知识库模式(推荐)
- 在飞书知识库中打开你的多维表格
- 从 URL 中获取 Wiki Node Token:
https://xxx.feishu.cn/wiki/[这里是node_token] - 在插件配置中选择"Wiki 知识库"模式
- 填写 Wiki Node Token
方式二:独立多维表格模式
- 打开独立的多维表格
- 从 URL 中提取 App Token 和 Table ID:
https://xxx.feishu.cn/base/[AppToken]?table=[TableID] - 在插件配置中选择"独立多维表格"模式
- 填写 App Token 和 Table ID
- 访问 DeepSeek 平台
- 注册并创建 API Key
- 在插件中勾选"启用 AI"并填写 API Key
- 访问 https://x.com 或 https://twitter.com
- 找到任意帖子
- 点击互动栏中的"保存到飞书"按钮
- 完成!
运行以下命令验证所有文件已就位:
# 检查必需文件
ls -1 manifest.json README.md
# 检查源文件
ls -1 src/background/service-worker.js
ls -1 src/content/content.js src/content/content.css
ls -1 src/popup/popup.html src/popup/popup.js src/popup/popup.css
ls -1 src/utils/extractor.js src/utils/thread-detector.js
# 检查图标
ls -1 icons/icon*.png- 访问 飞书开放平台
- 登录后点击"创建企业自建应用"
- 填写应用名称和描述
- 创建成功后,记录 App ID 和 App Secret
在应用管理页面:
- 进入"权限管理"
- 搜索并开启以下权限:
- ✅ 查看、评论、编辑和管理多维表格 (
bitable:app) - ✅ 获取知识空间信息 (
wiki:wiki:readonly) - Wiki 模式需要 - ✅ 获取知识空间节点信息 (
wiki:wiki.node:readonly) - Wiki 模式需要 - ✅ 上传图片或文件资源 (
im:message.file:send)
- ✅ 查看、评论、编辑和管理多维表格 (
- 点击"发布版本" → "创建版本" → "申请发布"
- 等待管理员审核通过(通常几分钟)
- 进入"可用性"页面
- 添加使用范围:
- 添加你的知识库空间
- 或选择"全部成员可用"
适用于知识库下的多维表格。
获取 Wiki Node Token:
打开你的多维表格页面,查看浏览器地址栏:
https://xxx.feishu.cn/wiki/IY2gwqoX4ix9S3xKWtlc5pednLf
↑
这是 node_token
在插件中配置:
- 点击浏览器工具栏的扩展图标
- 在"多维表格来源"中选择 "Wiki 知识库"
- 填写 Wiki Node Token:
IY2gwqoX4ix9S3xKWtlc5pednLf - (可选)如果多维表格中有多个数据表,可以填写 Table ID
- 点击"保存配置"
适用于独立创建的多维表格。
从 URL 中获取参数:
https://xxx.feishu.cn/base/V3FAbHqm7aBcdes1gfhijk?table=tblABCDefgh123456
↑ ↑
app_token table_id
在插件中配置:
- 在"多维表格来源"中选择 "独立多维表格"
- 填写 多维表格 App Token:
V3FAbHqm7aBcdes1gfhijk - 填写 Table ID:
tblABCDefgh123456 - 点击"保存配置"
插件会自动检测表格中的字段,只保存存在的字段。建议创建以下字段:
| 字段名 | 字段类型 | 是否必需 | 说明 |
|---|---|---|---|
| 帖子ID | 文本 | 推荐 | 用于防重复 |
| 作者名称 | 文本 | 推荐 | X 用户名 |
| 作者账号 | 文本 | 推荐 | @username |
| 帖子内容 | 多行文本 | 必需 | 帖子正文 |
| 帖子链接 | URL | 必需 | 原帖链接 |
| 发帖时间 | 日期 | 推荐 | 发布时间 |
| 点赞数 | 数字 | 可选 | 互动数据 |
| 转帖数 | 数字 | 可选 | 互动数据 |
| 回复数 | 数字 | 可选 | 互动数据 |
| 浏览量 | 数字 | 可选 | 互动数据 |
| 书签数 | 数字 | 可选 | 互动数据 |
| AI标签 | 多选 | 可选 | AI 生成的标签 |
| 头像 | 附件 | 可选 | 用户头像 |
| 认证状态 | 单选 | 可选 | 已认证/未认证 |
| 图片 | 附件 | 可选 | 帖子图片 |
注意:
- 不需要创建所有字段,只创建你需要的
- 字段名称必须完全匹配(包括中文)
- 插件会自动跳过不存在的字段
如果需要 AI 自动打标签:
- 访问 DeepSeek 平台
- 注册账号并登录
- 创建 API Key
- 在插件中填入 API Key
- 勾选"启用 AI 自动打标签"
- 选择标签生成模式:
- 保存前预览(推荐)- 生成标签后显示预览,可手动编辑
- 后台自动生成 - 保存后在后台生成标签,不阻塞保存流程
- 在 X 网站浏览帖子
- 找到帖子下方的互动栏(回复、转发、喜欢、书签等按钮)
- 点击新增的"保存到飞书"按钮(图标为 📄)
- 如果启用了 AI 标签,会显示预览弹窗
- 确认后保存到飞书多维表格
- 当帖子是 Thread 时(作者连续多条回复)
- 点击"保存到飞书"按钮
- 弹窗会提示检测到 Thread,显示帖子数量
- 选择:
- 仅保存主帖 - 只保存第一条
- 保存完整 Thread(推荐)- 保存所有连续回复
- 可勾选"记住选择",下次不再询问
- 点击"确定保存"
- 点击插件图标
- 切换到"历史"选项卡
- 查看最近 50 条保存记录
- 点击"查看原帖"可跳转到 X 原帖
单条删除:
- 在历史页面找到要删除的记录
- 点击"删除"按钮
- 如果在配置中启用了"删除飞书记录",会同步删除飞书中的记录
批量清空:
- 点击右上角的"一键清空"按钮
- 确认操作
- 如果启用了"删除飞书记录",会批量删除飞书中的所有记录
配置同步删除:
- 进入"配置"选项卡
- 找到"删除设置"部分
- 勾选"删除历史记录时同时删除飞书中的记录"
- 点击"保存配置"
原因: 多维表格中缺少必需字段
解决:
- 在多维表格中添加对应的字段
- 确保字段名称完全匹配(中文、大小写)
- 至少需要"帖子内容"和"帖子链接"字段
原因: 未配置 App Token、Table ID 或 Wiki Node Token
解决:
- Wiki 模式:从 URL 中获取 node_token 并填入
- 独立模式:从 URL 中获取 app_token 和 table_id 并填入
原因: App Token 或 Table ID 配置错误
解决:
- 检查是否复制了正确的多维表格 URL
- 确认 App Token 和 Table ID 没有多余的空格或字符
- 重新从目标表格的 URL 中复制
原因: 飞书应用未授权给知识库
解决:
- 在飞书应用的"可用性"中添加知识库空间
- 确认应用已发布并通过审核
- 检查应用权限中是否开启了多维表格和知识库相关权限
原因: 提供的 node_token 指向的不是多维表格
解决:
- 确认打开的是多维表格页面,而不是文档或电子表格
- 检查 URL 是否正确
| 字段名称 | 说明 | 类型 |
|---|---|---|
| 帖子ID | Tweet 唯一标识 | 文本 |
| 作者名称 | 显示名称 | 文本 |
| 作者账号 | @username | 文本 |
| 头像 | 用户头像(自动上传) | 附件 |
| 认证状态 | 是否认证账号 | 单选 |
| 发帖时间 | 发布时间戳 | 日期 |
| 帖子内容 | 完整文本内容 | 多行文本 |
| 帖子链接 | 原帖链接 | URL |
| 图片 | 帖子图片(自动上传) | 附件 |
| 浏览量 | 观看次数 | 数字 |
| 回复数 | 评论数 | 数字 |
| 转帖数 | 转发数 | 数字 |
| 点赞数 | 喜欢数 | 数字 |
| 书签数 | 收藏数 | 数字 |
| AI标签 | AI 生成的分类标签 | 多选 |
| Thread数量 | Thread 帖子数 | 数字 |
| 是否引用 | 是否包含 Quote Tweet | 复选框 |
| 保存时间 | 插件保存时间 | 日期 |
| 备注 | 自定义备注 | 多行文本 |
在飞书多维表格中创建以下视图以更好地管理内容:
- 默认视图 - 按保存时间倒序,查看最新保存
- 标签视图 - 按 AI 标签分组,快速找到同类内容
- 作者视图 - 按作者账号分组,查看特定作者的帖子
- 热度视图 - 按点赞数+转发数排序,发现热门内容
- Thread视图 - 筛选 Thread 数量>1 的记录
AI 会从以下维度分析帖子内容:
- 主题分类 - 技术、产品、设计、商业、娱乐等
- 具体领域 - AI、Web3、SaaS、移动开发等
- 关键实体 - 公司名、产品名、技术名
- 内容类型 - 教程、评测、新闻、观点等
帖子内容:
"试了一下谷歌无限画布产品 MixBoard 这次的更新,很强啊。PPT 生成同样支持自定义提示词..."
AI 生成的标签:
AI工具产品评测GooglePPT生成办公效率
流程:
- 点击"保存到飞书"
- AI 生成标签(约 2-3 秒)
- 显示预览弹窗
- 可手动编辑标签
- 确认后保存
优点:
- 可以审核和修改标签
- 提高标签准确性
- 用户参与感强
流程:
- 点击保存 → 立即保存到飞书
- 后台异步调用 AI 生成标签
- 生成后自动更新飞书文档
优点:
- 不阻塞保存流程
- 用户体验流畅
- 适合批量操作
打开 Service Worker 控制台:
- 打开 Chrome 扩展页面:
chrome://extensions/ - 找到 "X to Lark" 扩展
- 点击"检查视图" → "Service Worker"
- 会打开一个控制台窗口
查看日志信息:
重新尝试保存帖子后,在控制台中查看以下日志:
✅ 使用的配置: { appToken: "...", tableId: "..." }
✅ 获取字段URL: https://...
✅ 获取字段响应: { code: 0, data: {...} }
✅ 表格字段: ["帖子ID", "作者名称", ...]
✅ 准备保存的记录: { fields: {...} }
✅ 保存的字段数: 14
✅ 保存响应: { code: 0, data: {...} }
Error: 保存失败: NOTEXIST
原因:
- App Token 不正确
- Table ID 不正确
- 表格已被删除
解决方法:
-
检查 App Token 和 Table ID
- Wiki 模式:检查 Wiki Node Token 是否正确
- 独立模式:从 URL 中重新提取 App Token 和 Table ID
-
确认配置
- 打开扩展 popup
- 检查配置信息
- 确保没有多余的空格或换行
-
重新加载扩展
- 在
chrome://extensions/页面 - 点击扩展的"刷新"按钮
- 在
Error: 没有权限访问此表格
原因: 飞书应用没有访问知识库/表格的权限
解决方法:
-
检查应用权限
- 打开飞书开放平台
- 进入你的应用
- 点击"权限管理"
- 确认已开启所需权限
-
设置可用性
- 点击"可用性"
- 添加使用范围(添加知识库空间)
-
发布应用
- 如果修改了权限,需要重新发布
- 点击"版本管理与发布"
- 创建版本 → 申请发布
检查:
- 扩展是否已加载(
chrome://extensions/) - 页面是否已刷新(F5)
- 打开开发者工具(F12)查看 Console 是否有错误
解决:
// 在 Console 中运行以下命令强制重新注入
location.reload();检查:
- "启用 AI"是否已勾选
- DeepSeek API Key 是否正确
- 账户是否有余额
- 网络是否能访问 DeepSeek API
解决:
- 访问 https://platform.deepseek.com/ 检查账户状态
- 重新生成 API Key
- 更换标签模式为"后台自动生成"
xGoodPostToLark/
├── manifest.json # Chrome 扩展配置文件
├── README.md # 本文件
├── src/
│ ├── background/
│ │ └── service-worker.js # 后台服务(处理 API 调用)
│ ├── content/
│ │ ├── content.js # 页面注入逻辑
│ │ └── content.css # 样式文件
│ ├── popup/
│ │ ├── popup.html # 配置页面
│ │ ├── popup.css # 配置页面样式
│ │ └── popup.js # 配置页面逻辑
│ └── utils/
│ ├── extractor.js # 数据提取工具
│ └── thread-detector.js # Thread 检测工具
└── icons/ # 图标资源
├── icon16.png
├── icon32.png
├── icon48.png
└── icon128.png
- 前端 - 原生 JavaScript (ES6+)
- 扩展框架 - Chrome Extension Manifest V3
- AI 服务 - DeepSeek API
- 云服务 - 飞书开放平台 API
- 存储 - Chrome Storage API
- ✅ 支持保存帖子到飞书多维表格
- ✅ 支持 DeepSeek AI 智能标签
- ✅ 支持 Thread 检测和保存
- ✅ 支持图片上传
- ✅ 支持去重检测
- ✅ 支持历史记录查看
- ✅ 支持 Wiki 知识库和独立多维表格两种模式
- ✅ 支持删除历史记录并同步删除飞书记录
- ✅ 基于 aria-label 的高效数据提取
- ✅ 基于连续同作者的可靠 Thread 检测
- ✅ 完整的错误处理和用户提示
- ✅ 实时 Toast 反馈
- API 限制 - 注意飞书 API 和 DeepSeek API 的调用频率限制
- 隐私安全 - API Key 等敏感信息存储在本地,不会上传
- 网络要求 - 需要稳定的网络连接访问飞书和 DeepSeek API
- DOM 变化 - X 网站可能更新 DOM 结构,导致提取失败,请及时反馈
- 图片数量 - 每条帖子最多保存 9 张图片
MIT License
Copyright (c) 2025 X to Lark Team
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Made with ❤️ by X to Lark Team