Skip to content

一个强迫AI开发的可部署到Cloudflare Workers上的Telegram机器人,用于管理Notion数据库和GitHub仓库绑定的Bot应用。

License

Notifications You must be signed in to change notification settings

bmqy/notion-tools-bot

Repository files navigation

Notion Tools Bot

一个强迫AI开发的可部署到Cloudflare Workers上的Telegram机器人,用于管理Notion数据库和GitHub仓库绑定的Bot应用。

功能特点

  • 🤖 Telegram机器人管理界面
  • 📦 适用于基于Notion作为数据库的静态站点
  • 🔄 指令化关联Notion数据库和GitHub仓库绑定
  • 🔗 支持多个数据库和仓库的绑定
  • 📝 Notion数据库更新时自动触发GitHub Actions工作流
  • 📝 指令式触发Notion数据库绑定仓库的GitHub Actions工作流
  • 🔔 实时接收工作流执行状态消息
  • ⏰ 延时触发,避免频繁触发GitHub Actions

准备工作

申请 Telegram Bot

  • 访问 Telegram Bot Father
  • 输入/newbot,然后输入机器人的名称和描述
  • 获取BOT_TOKEN

Notion Token 获取与 Webhook 配置

1. 创建 Notion 集成

  1. 访问 Notion Integrations
  2. 点击New integration
  3. 填写集成名称和选择工作区
  4. 保存并获取 NOTION_TOKEN

2. 配置数据库权限

  1. Notion中打开要集成的数据库
  2. 点击右上角的...菜单
  3. 选择Add connections
  4. 选择你创建的集成

3. 设置 Webhook

后续步骤需要等待workers项目部署成功后方可继续。

  1. 访问 Notion Webhooks
  2. 点击New webhook
  3. 选择要监听的数据库
  4. 设置webhook URL为你的Worker URL(例如:https://your-worker.workers.dev/api/notion/webhook
  5. 保存配置

4. 验证 Webhook

当你设置webhook URL时,Notion会发送一个验证请求。我们的Workers会自动处理这个请求:

  1. 当你收到验证请求时,机器人会发送一条消息给你,包含验证令牌
  2. 消息格式如下:
    🔔 Notion Webhook 验证请求
    
    验证令牌:
    <code>your-verification-token</code>
    
    请点击上方令牌复制,然后添加到`Notion webhook`配置中。
    
  3. 点击消息中的令牌即可复制
  4. 将令牌添加到Notion webhook配置中完成验证

环境变量

准备好workers项目运行时所需的环境变量:

# 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

# 延时触发actions
TRIGGER_DELAY_MINUTES=5

获取 KV 命名空间id

安装部署

  1. fork本仓库

  2. 创建cloudflare workers项目

    • 选择fork的仓库
    • 输入构建变量:
      • KV_NAMESPACE_ID: KV命名空间ID
    • 部署项目
  3. 创建完成后,打开workers设置面板,填写运行时所需的环境变量(变量名称处支持多个变量的复制粘贴)

  4. 部署成功后,访问 https://your-worker.workers.dev/,即可看到机器人的欢迎界面

  5. 访问https://your-worker.workers.dev/api/telegram/setup,你应该看到Webhook setup completed的成功提示

  6. 此时可以继续完成notion webhook的验证步骤

  7. Enjoy the bot!

使用说明

  1. 发送 /start 开始使用
  2. 发送 /help 查看帮助
/list - 列出所有监听的 Notion 数据库
/bind [数据库ID] [owner/repo] - 添加 Notion 数据库和 GitHub 仓库的绑定
/unbind - 移除 Notion 数据库和 GitHub 仓库的绑定
/trigger - 手动触发 GitHub repository_dispatch 事件

使用说明:
1. 数据库 ID 可以从 Notion 数据库页面的 URL 中获取,格式为 32 位字符串
2. 添加/移除数据库需要管理员权限
3. 使用 /list 可以查看当前所有监听的数据库
4. 使用 /trigger 可以手动触发已关联的 GitHub Action

许可证

MIT

About

一个强迫AI开发的可部署到Cloudflare Workers上的Telegram机器人,用于管理Notion数据库和GitHub仓库绑定的Bot应用。

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published