AI智能摘要
TGbot 是一个基于 Cloudflare Worker 与 D1 数据库的 Telegram 双向私聊机器人,可将用户私信转发至管理员群组的话题中,并将管理员回复中继回用户。支持动态话题命名、人机验证、关键词自动回复与屏蔽、消息编辑同步、内容过滤及多管理员授权等功能。通过 D1 数据库存储配置与用户状态,管理员可在私聊中使用菜单进行在线配置。需设置 BOT_TOKEN、ADMIN_IDS 与 ADMIN_GROUP_ID 等环境变量,并完成 Webhook 配置以实现消息中继。
— 此摘要由AI分析文章内容生成,仅供参考。
项目地址:moistrr/TGbot-D1: 实现了:人机验证、私聊到话题模式的转发、管理员回复中继、话题名动态更新、已编辑消息处理、用户屏蔽功能、关键词自动回复等
项目介绍
基于 Cloudflare Worker 和 D1 数据库的 Telegram 双向机器人代码。它将用户私聊消息转发到管理员群组的话题(Topic)中,并将管理员在话题中的回复中继回用户私聊。
自带人机验证可有效阻止TG机器人广告轰炸!
功能特性
- 双向中继与话题模式:
- 将每个用户私聊会话转发到一个管理员群组的独立话题中。
- 话题名称动态显示用户昵称和 ID,方便管理员区分。
- 管理员在话题中回复即可自动转发回用户。
- D1 数据库支持:
- 使用 Cloudflare D1 (SQLite) 存储用户状态、话题 ID 和所有配置,确保高并发写入和数据持久化。
- 完整的管理员配置菜单:
- 管理员私聊机器人发送
/start即可进入菜单驱动的配置界面。 - 注意是私聊BOT,不是在群组内发送/start,而且变量必须设置管理员的ID(双重防护),否则无法唤醒指令
- 支持在线编辑验证问答、屏蔽阈值等配置。
- 管理员私聊机器人发送
- 增强的规则管理(最新重构):
- 彻底重构自动回复规则和关键词屏蔽的管理方式。
- 新增列表显示、新增和删除功能,所有操作均通过内联按钮完成,无需手动修改代码或配置。
- 内容过滤与安全:
- 人机验证: 在用户首次使用前进行验证。
- 关键词屏蔽: 可配置关键词黑名单,超过设定的屏蔽阈值(如 5 次)自动屏蔽用户。
- 内容类型过滤: 粒度控制是否转发纯文本、媒体(图片/视频/文件)、链接、任何转发消息、音频/语音、贴纸/GIF 等内容类型。
- 用户管理操作:
- 在每个用户话题的顶部资料卡中,提供一键屏蔽/解禁和一键置顶资料卡的内联按钮。
- 已编辑消息处理:
- 用户在私聊中修改已发送的消息时,机器人会在对应的管理员话题中发送消息修改通知,并附带修改前后的内容对比。
- 消息备份功能:
- 备份群组功能:配置一个群组,用于接收所有用户消息的副本,不参与回复。
- 协同多账号处理功能:
- 可以授权群组内的其他成员进行回复,未被授权的用户无法回复消息,使用方法,到配置里面绑定需要授权的账号ID即可
软件预览




部署教程
创建D1数据库
- 登录 Cloudflare Dashboard。
- 左侧导航到 Workers 和 Pages -> D1。
- 点击 创建数据库,输入数据库名称(例如:
tg-bot-db)。 - 进入您创建的 D1 数据库,点击 浏览数据 Explore data。
- 将下面三段执行语句分别复制到执行窗口,点击执行即可,成功后左侧可看到三个数据表(如图)
— ① users 表
CREATE TABLE IF NOT EXISTS users ( user_id TEXT PRIMARY KEY, topic_id TEXT, user_state TEXT, is_blocked INTEGER, block_count INTEGER, user_info_json TEXT );
— ② config 表
CREATE TABLE IF NOT EXISTS config ( key TEXT PRIMARY KEY, value TEXT );
— ③ messages 表
CREATE TABLE IF NOT EXISTS messages ( user_id TEXT, message_id TEXT, text TEXT, date INTEGER, PRIMARY KEY (user_id, message_id) );

创建Worker
- 导航到 Workers 和 Pages。
- 点击 创建应用程序 -> 创建 Worker。
- 输入服务名称(例如:
telegram-forwarder)。 - 点击 部署。
- 部署完成后,点击 编辑代码。
- 清空默认代码,将项目中提供的完整代码(worker.js)复制并粘贴到编辑器中。
- 点击 部署 Worker。
绑定D1数据库
- 在你部署的 Worker 页面上方点击导航栏的 绑定。
- 选择 D1 数据库,添加绑定
- 输入以下信息
- 在 变量名称 中,必须 填写
TG_BOT_DB。 - 在 D1 数据库 中,选择您在步骤一中创建的数据库(例如:
tg-bot-db)。
- 在 变量名称 中,必须 填写
- 点击 添加。
配置环境变量
- 在 Worker 的设置页面,选择 变量 -> 环境变量。
- 点击 添加变量,配置以下 三个 必填项:
| 变量名称 | 值(示例) | 说明 |
|---|---|---|
BOT_TOKEN | 123456:AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP | 您的 Telegram Bot Token。 |
ADMIN_IDS | 12345678, 87654321 | 管理员的 Telegram 用户 ID,多个 ID 用英文逗号分隔!注意注意注意是用户的ID,不是用户名也不是昵称。 |
ADMIN_GROUP_ID | -1001234567890 | 用于接收用户消息的群组 ID(注意:必须是群组,且已开启话题功能,普通群组和话题群组的ID不一样)。 |
注意群组必须开启话题功能!

设置Webhook
在浏览器中访问以下 URL 完成设置:
https://api.telegram.org/bot<您的BOT_TOKEN>/setWebhook?url=<您的Worker服务URL> 示例https://api.telegram.org/bot112223333444:AAE5HI-vbxmidWhdbVVuvTO-5556666777/setWebhook?url=https://tgbot.xxxxxx.worker/
如果默认的worker.dev域名无法访问,请自行绑定自定义域名!
如果返回 {"ok":true,"result":true,"description":"Webhook was set"},则表示部署成功。
操作使用
管理员私聊 Bot 发送 /start 即可进入配置菜单。
发布者:木木,转载请注明出处:https://blog.huzz.cn/10035.html
微信
支付宝