TGbot : 基于Cloudflare-D1数据库的双向私聊BOT【推荐】

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机器人广告轰炸!

功能特性

  1. 双向中继与话题模式:
    • 将每个用户私聊会话转发到一个管理员群组的独立话题中。
    • 话题名称动态显示用户昵称和 ID,方便管理员区分。
    • 管理员在话题中回复即可自动转发回用户。
  2. D1 数据库支持:
    • 使用 Cloudflare D1 (SQLite) 存储用户状态、话题 ID 和所有配置,确保高并发写入和数据持久化。
  3. 完整的管理员配置菜单:
    • 管理员私聊机器人发送 /start 即可进入菜单驱动的配置界面。
    • 注意是私聊BOT,不是在群组内发送/start,而且变量必须设置管理员的ID(双重防护),否则无法唤醒指令
    • 支持在线编辑验证问答屏蔽阈值等配置。
  4. 增强的规则管理(最新重构):
    • 彻底重构自动回复规则关键词屏蔽的管理方式。
    • 新增列表显示新增删除功能,所有操作均通过内联按钮完成,无需手动修改代码或配置。
  5. 内容过滤与安全:
    • 人机验证: 在用户首次使用前进行验证。
    • 关键词屏蔽: 可配置关键词黑名单,超过设定的屏蔽阈值(如 5 次)自动屏蔽用户。
    • 内容类型过滤: 粒度控制是否转发纯文本媒体(图片/视频/文件)链接任何转发消息音频/语音贴纸/GIF 等内容类型。
  6. 用户管理操作:
    • 在每个用户话题的顶部资料卡中,提供一键屏蔽/解禁一键置顶资料卡的内联按钮。
  7. 已编辑消息处理:
    • 用户在私聊中修改已发送的消息时,机器人会在对应的管理员话题中发送消息修改通知,并附带修改前后的内容对比。
  8. 消息备份功能:
    • 备份群组功能:配置一个群组,用于接收所有用户消息的副本,不参与回复。
  9. 协同多账号处理功能:
    • 可以授权群组内的其他成员进行回复,未被授权的用户无法回复消息,使用方法,到配置里面绑定需要授权的账号ID即可

软件预览

部署教程

创建D1数据库

  1. 登录 Cloudflare Dashboard。
  2. 左侧导航到 Workers 和 Pages -> D1
  3. 点击 创建数据库,输入数据库名称(例如:tg-bot-db)。
  4. 进入您创建的 D1 数据库,点击 浏览数据 Explore data。
  5. 将下面三段执行语句分别复制到执行窗口,点击执行即可,成功后左侧可看到三个数据表(如图)

— ① 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) );
TGbot :  基于Cloudflare-D1数据库的双向私聊BOT【推荐】

创建Worker

  1. 导航到 Workers 和 Pages
  2. 点击 创建应用程序 -> 创建 Worker
  3. 输入服务名称(例如:telegram-forwarder)。
  4. 点击 部署
  5. 部署完成后,点击 编辑代码
  6. 清空默认代码,将项目中提供的完整代码(worker.js)复制并粘贴到编辑器中。
  7. 点击 部署 Worker

绑定D1数据库

  1. 在你部署的 Worker 页面上方点击导航栏的 绑定
  2. 选择 D1 数据库,添加绑定
  3. 输入以下信息
    • 在 变量名称 中,必须 填写 TG_BOT_DB
    • 在 D1 数据库 中,选择您在步骤一中创建的数据库(例如:tg-bot-db)。
  4. 点击 添加

配置环境变量

  1. 在 Worker 的设置页面,选择 变量 -> 环境变量
  2. 点击 添加变量,配置以下 三个 必填项:
变量名称值(示例)说明
BOT_TOKEN123456:AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP您的 Telegram Bot Token。
ADMIN_IDS12345678, 87654321管理员的 Telegram 用户 ID,多个 ID 用英文逗号分隔!注意注意注意是用户的ID,不是用户名也不是昵称
ADMIN_GROUP_ID-1001234567890用于接收用户消息的群组 ID(注意:必须是群组,且已开启话题功能,普通群组和话题群组的ID不一样)。

注意群组必须开启话题功能!

TGbot :  基于Cloudflare-D1数据库的双向私聊BOT【推荐】

设置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

Like (0)
Donate 微信 微信 支付宝 支付宝
木木的头像木木VIP用户
Previous 2025 年 11 月 11 日 下午2:28
Next 2025 年 11 月 17 日 上午9:26

相关推荐

发表回复

Please Login to Comment
SHARE
TOP
🔈Hi,朋友。欢迎来到木木的博客小站!