这是一个自动化工具,用于监控指定微信公众号的更新,并将文章信息同步到飞书多维表格中。
- 🔄 RSS订阅监控:支持通过RSS源获取公众号文章
- 📊 飞书集成:自动同步文章信息到飞书多维表格
- 🔍 重复检测:避免重复添加已处理的文章
- 📝 详细日志:完整的日志记录和错误处理
- ⚙️ 灵活配置:支持YAML配置文件和环境变量
- 📈 统计功能:提供详细的处理统计信息
wechat-rss-feishu/
├── src/ # 源代码目录
│ ├── main.py # 主程序入口
│ ├── rss_fetcher.py # RSS获取模块
│ ├── feishu_client.py # 飞书API客户端
│ ├── config_manager.py # 配置管理模块
│ └── data_manager.py # 数据管理模块
├── config/ # 配置文件目录
│ └── config.yaml.example # 配置文件模板
├── logs/ # 日志文件目录
├── data/ # 数据文件目录
├── requirements.txt # Python依赖
├── .env.example # 环境变量模板
├── setup.py # 安装脚本
└── README.md # 项目说明
确保你的系统已安装 Python 3.7+:
python --version# 如果使用git
git clone <repository-url>
cd wechat-rss-feishu
# 或者直接下载并解压到目录pip install -r requirements.txt# 复制配置文件模板
cp config/config.yaml.example config/config.yaml
cp .env.example .env- 访问 飞书开放平台
- 创建企业自建应用
- 获取 App ID 和 App Secret
- 开启"机器人"能力
- 配置权限范围:
bitable:app:readonly- 查看多维表格bitable:app:readwrite- 编辑多维表格
- 创建或打开一个飞书多维表格
- 从URL中提取
app_token:https://example.feishu.cn/base/app_token?table=table_id - 记录
app_token和table_id
获取"记忆承载"公众号的RSS订阅地址:
推荐方案:WeWe RSS
- 访问 WeWe RSS 项目
- 按照文档部署或使用现有服务
- 获取"记忆承载"公众号的RSS地址
备选方案:其他RSS服务
- RSSHub:
https://rsshub.app/wechat/mp/记忆承载 - Kindle4RSS:付费服务,稳定性较好
编辑 .env 文件:
# 飞书应用配置
FEISHU_APP_ID=cli_xxxxxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxxxxx
# 多维表格配置
BITABLE_APP_TOKEN=xxxxxxxxxxxxx
BITABLE_TABLE_ID=xxxxxxxxxxxxx
# RSS配置
RSS_JIYI_CHENGZAI_URL=https://your-rss-service.com/feed/记忆承载或者编辑 config/config.yaml:
feishu:
app_id: "cli_xxxxxxxxxxxxx"
app_secret: "xxxxxxxxxxxxx"
bitable:
app_token: "xxxxxxxxxxxxx"
table_id: "xxxxxxxxxxxxx"
rss:
sources:
- name: "记忆承载"
url: "https://your-rss-service.com/feed/记忆承载"在飞书中创建表格,包含以下字段:
| 字段名称 | 字段类型 | 说明 |
|---|---|---|
| 公众号名称 | 单行文本 | 公众号名称 |
| 文章标题 | 单行文本 | 文章标题 |
| 文章链接 | URL | 文章链接 |
| 发布时间 | 日期时间 | 文章发布时间 |
| 摘要 | 多行文本 | 文章摘要 |
| 作者 | 单行文本 | 文章作者 |
| 抓取时间 | 日期时间 | 抓取时间 |
cd src
python main.py --testpython main.py --statspython main.pypython main.py [OPTIONS]
Options:
--config PATH 指定配置文件路径
--test 测试所有连接
--stats 显示统计信息
--verbose, -v 详细输出
--help 显示帮助信息rss:
sources:
- name: "记忆承载"
url: "https://rss-service.com/feed"
settings:
timeout: 30 # 请求超时时间
max_articles: 10 # 每次最多获取文章数
user_agent: "..." # 用户代理feishu:
app_id: "your_app_id"
app_secret: "your_app_secret"
base_url: "https://open.feishu.cn"
bitable:
app_token: "your_app_token"
table_id: "your_table_id"app:
check_duplicate: true # 是否检查重复文章
data_file: "data/processed_articles.json" # 数据文件路径# 编辑 crontab
crontab -e
# 添加定时任务(每天21:00执行)
0 21 * * * cd /path/to/wechat-rss-feishu/src && python main.py- 打开"任务计划程序"
- 创建基本任务
- 设置触发器为每天21:00
- 设置操作为运行Python脚本
问题: RSS请求失败 或 RSS解析失败
解决方案:
- 检查RSS URL是否正确
- 确认RSS服务是否可用
- 尝试更换User-Agent
- 检查网络连接
问题: 获取访问令牌失败 或 飞书API错误
解决方案:
- 检查App ID和App Secret是否正确
- 确认应用权限是否正确配置
- 检查多维表格的app_token和table_id
- 确认应用已被添加到对应的飞书群组
问题: 字段不存在 或 数据类型错误
解决方案:
- 检查多维表格字段名称是否与代码中一致
- 确认字段类型设置正确
- 重新创建表格结构
问题: 文章重复添加
解决方案:
- 确认
check_duplicate设置为true - 检查数据文件是否可读写
- 清理数据文件重新运行
日志文件位置:logs/app.log
日志级别说明:
INFO: 正常运行信息WARNING: 警告信息,程序可继续运行ERROR: 错误信息,可能影响功能DEBUG: 调试信息,详细执行过程
常见日志关键词:
成功获取: RSS获取成功文章添加成功: 飞书同步成功文章已处理,跳过: 重复文章跳过连接测试通过: 各项服务连接正常
- 在配置文件中添加新源:
rss:
sources:
- name: "新公众号"
url: "https://rss-service.com/new-feed"- 重新运行程序即可
项目采用模块化设计,可以方便地扩展:
rss_fetcher.py: 扩展RSS解析逻辑feishu_client.py: 扩展飞书API功能data_manager.py: 扩展数据管理功能
- Fork 项目
- 创建功能分支
- 提交更改
- 发起 Pull Request
MIT License
如果遇到问题,请:
- 查看日志文件排查问题
- 检查配置是否正确
- 确认所有服务可用
- 提交 Issue 描述问题
注意: 请确保遵守相关服务的使用条款,合理使用API接口,避免频繁请求。