一个强迫AI开发的可部署到Cloudflare Workers上的Telegram机器人,用于管理Notion数据库和GitHub仓库绑定的Bot应用。
GitHub:https://github.com/bmqy/notion-tools-bot
功能特点
- 🤖
Telegram机器人管理界面 - 📦 适用于基于
Notion作为数据库的静态站点 - 🔄 指令化关联
Notion数据库和GitHub仓库绑定 - 🔗 支持多个数据库和仓库的绑定
- 📝
Notion数据库更新时自动触发GitHub Actions工作流 - 📝 指令式触发
Notion数据库绑定仓库的GitHub Actions工作流 - 🔔 实时接收工作流执行状态消息
准备工作
申请 Telegram Bot
- 访问 Telegram Bot Father
- 输入
/newbot,然后输入机器人的名称和描述 - 获取
BOT_TOKEN
Notion Token 获取与 Webhook 配置
1. 创建 Notion 集成
- 访问 Notion Integrations
- 点击
New integration - 填写集成名称和选择工作区
- 保存并获取
NOTION_TOKEN
2. 配置数据库权限
- 在
Notion中打开要集成的数据库 - 点击右上角的
...菜单 - 选择
Add connections - 选择你创建的集成
3. 设置 Webhook
后续步骤需要等待workers项目部署成功后方可继续。
- 访问 Notion Webhooks
- 点击
New webhook - 选择要监听的数据库
- 设置
webhook URL为你的Worker URL(例如:https://your-worker.workers.dev/api/notion/webhook) - 保存配置
4. 验证 Webhook
当你设置webhook URL时,Notion会发送一个验证请求。我们的Workers会自动处理这个请求:
-
当你收到验证请求时,机器人会发送一条消息给你,包含验证令牌
-
消息格式如下:
plain
🔔 Notion Webhook 验证请求 验证令牌: <code>your-verification-token</code> 请点击上方令牌复制,然后添加到`Notion webhook`配置中。 -
点击消息中的令牌即可复制
-
将令牌添加到
Notion webhook配置中完成验证
环境变量
准备好workers项目运行时所需的环境变量:
plain
# Notion API 令牌
NOTION_TOKEN=your_notion_integration_token
# Telegram 配置
TELEGRAM_BOT_TOKEN=your_telegram_bot_token
TELEGRAM_ADMIN_USER_ID=your_telegram_user_id
# GitHub 配置
GITHUB_TOKEN=your_github_personal_access_token获取 KV 命名空间id
- 访问 Cloudflare Dashboard
- 打开
存储和数据库 - 创建一个
KV - 记录下
KV命名空间ID
安装部署
fork本仓库- 创建
cloudflare workers项目- 选择
fork的仓库 - 输入构建变量:
KV_NAMESPACE_ID:KV命名空间ID
- 部署项目
- 选择
- 创建完成后,打开
workers设置面板,填写运行时所需的环境变量(变量名称处支持多个变量的复制粘贴) - 部署成功后,访问
https://your-worker.workers.dev/,即可看到机器人的欢迎界面 - 访问
https://your-worker.workers.dev/api/telegram/setup,你应该看到Webhook setup completed的成功提示 - 此时可以继续完成
notion webhook的验证步骤 - Enjoy the bot!
使用说明
- 发送
/start开始使用 - 发送
/help查看帮助
`/list - 列出所有监听的 Notion 数据库 /bind [数据库ID] [owner/repo] - 添加 Notion 数据库和 GitHub 仓库的绑定 /unbind - 移除 Notion 数据库和 GitHub 仓库的绑定 /trigger - 手动触发 GitHub repository_dispatch 事件
使用说明:
- 数据库 ID 可以从 Notion 数据库页面的 URL 中获取,格式为 32 位字符串
- 添加/移除数据库需要管理员权限
- 使用 /list 可以查看当前所有监听的数据库
- 使用 /trigger 可以手动触发已关联的 GitHub Action`

