Skip to content

Repository files navigation

微信公众号RSS监控同步飞书

这是一个自动化工具,用于监控指定微信公众号的更新,并将文章信息同步到飞书多维表格中。

功能特性

  • 🔄 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             # 项目说明

快速开始

1. 环境准备

确保你的系统已安装 Python 3.7+:

python --version

2. 克隆或下载项目

# 如果使用git
git clone <repository-url>
cd wechat-rss-feishu

# 或者直接下载并解压到目录

3. 安装依赖

pip install -r requirements.txt

4. 配置设置

4.1 复制配置文件

# 复制配置文件模板
cp config/config.yaml.example config/config.yaml
cp .env.example .env

4.2 获取飞书应用凭据

  1. 访问 飞书开放平台
  2. 创建企业自建应用
  3. 获取 App ID 和 App Secret
  4. 开启"机器人"能力
  5. 配置权限范围:
    • bitable:app:readonly - 查看多维表格
    • bitable:app:readwrite - 编辑多维表格

4.3 获取多维表格信息

  1. 创建或打开一个飞书多维表格
  2. 从URL中提取 app_token
    https://example.feishu.cn/base/app_token?table=table_id
    
  3. 记录 app_tokentable_id

4.4 配置RSS源

获取"记忆承载"公众号的RSS订阅地址:

推荐方案:WeWe RSS

  1. 访问 WeWe RSS 项目
  2. 按照文档部署或使用现有服务
  3. 获取"记忆承载"公众号的RSS地址

备选方案:其他RSS服务

  • RSSHub:https://rsshub.app/wechat/mp/记忆承载
  • Kindle4RSS:付费服务,稳定性较好

4.5 编辑配置文件

编辑 .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/记忆承载"

5. 创建多维表格结构

在飞书中创建表格,包含以下字段:

字段名称 字段类型 说明
公众号名称 单行文本 公众号名称
文章标题 单行文本 文章标题
文章链接 URL 文章链接
发布时间 日期时间 文章发布时间
摘要 多行文本 文章摘要
作者 单行文本 文章作者
抓取时间 日期时间 抓取时间

6. 测试运行

6.1 测试连接

cd src
python main.py --test

6.2 查看统计

python main.py --stats

6.3 执行同步

python main.py

使用说明

命令行参数

python main.py [OPTIONS]

Options:
  --config PATH    指定配置文件路径
  --test          测试所有连接
  --stats         显示统计信息
  --verbose, -v   详细输出
  --help          显示帮助信息

配置说明

RSS配置

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"  # 数据文件路径

定时运行

使用 cron(Linux/macOS)

# 编辑 crontab
crontab -e

# 添加定时任务(每天21:00执行)
0 21 * * * cd /path/to/wechat-rss-feishu/src && python main.py

使用 Windows 任务计划程序

  1. 打开"任务计划程序"
  2. 创建基本任务
  3. 设置触发器为每天21:00
  4. 设置操作为运行Python脚本

故障排除

常见问题

1. RSS获取失败

问题: RSS请求失败RSS解析失败

解决方案:

  • 检查RSS URL是否正确
  • 确认RSS服务是否可用
  • 尝试更换User-Agent
  • 检查网络连接

2. 飞书API调用失败

问题: 获取访问令牌失败飞书API错误

解决方案:

  • 检查App ID和App Secret是否正确
  • 确认应用权限是否正确配置
  • 检查多维表格的app_token和table_id
  • 确认应用已被添加到对应的飞书群组

3. 字段映射错误

问题: 字段不存在数据类型错误

解决方案:

  • 检查多维表格字段名称是否与代码中一致
  • 确认字段类型设置正确
  • 重新创建表格结构

4. 重复文章处理

问题: 文章重复添加

解决方案:

  • 确认 check_duplicate 设置为 true
  • 检查数据文件是否可读写
  • 清理数据文件重新运行

日志分析

日志文件位置:logs/app.log

日志级别说明:

  • INFO: 正常运行信息
  • WARNING: 警告信息,程序可继续运行
  • ERROR: 错误信息,可能影响功能
  • DEBUG: 调试信息,详细执行过程

常见日志关键词:

  • 成功获取: RSS获取成功
  • 文章添加成功: 飞书同步成功
  • 文章已处理,跳过: 重复文章跳过
  • 连接测试通过: 各项服务连接正常

开发说明

添加新的RSS源

  1. 在配置文件中添加新源:
rss:
  sources:
    - name: "新公众号"
      url: "https://rss-service.com/new-feed"
  1. 重新运行程序即可

扩展功能

项目采用模块化设计,可以方便地扩展:

  • rss_fetcher.py: 扩展RSS解析逻辑
  • feishu_client.py: 扩展飞书API功能
  • data_manager.py: 扩展数据管理功能

贡献代码

  1. Fork 项目
  2. 创建功能分支
  3. 提交更改
  4. 发起 Pull Request

许可证

MIT License

支持

如果遇到问题,请:

  1. 查看日志文件排查问题
  2. 检查配置是否正确
  3. 确认所有服务可用
  4. 提交 Issue 描述问题

注意: 请确保遵守相关服务的使用条款,合理使用API接口,避免频繁请求。

About

微信公众号RSS同步飞书工具 - WeChat RSS to Feishu sync tool

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages