Notion工具人bot

2025-04-04 21:10:00 # 燕坊清作

一个强迫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 集成

  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. 消息格式如下:

    text
    1
    2
    3
    4
    5
    6
    🔔 Notion Webhook 验证请求

    验证令牌:
    <code>your-verification-token</code>

    请点击上方令牌复制,然后添加到`Notion webhook`配置中。
  3. 点击消息中的令牌即可复制

  4. 将令牌添加到Notion webhook配置中完成验证

环境变量

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

text
1
2
3
4
5
6
7
8
9
# 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

安装部署

  1. fork本仓库
  2. 创建cloudflare workers项目
    • 选择fork的仓库
    • 输入构建变量:
      • KV_NAMESPACE_IDKV命名空间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`
  • 本文作者 北门清燕
  • 本文链接 Notion工具人bot
  • 发表日期 2025-04-04 17:39:00
  • 更新日期 2025-04-04 21:10:00
  • 版权声明 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!