Featured image of post TG双向私聊机器人搭建

TG双向私聊机器人搭建

tg-bot

转载整理自 https://www.nodeseek.com/post-505641-1

🚀 Telegram 双向机器人 Cloudflare Worker

功能简介

这是一个基于 Cloudflare Worker 和 D1 数据库的 Telegram 双向机器人代码。它将用户私聊消息转发到管理员群组的话题(Topic)中,并将管理员在话题中的回复中继回用户私聊。

准备工作:

先创建群组(我创建的私人群组) 然后把群组改成话题模式(这个是必须步骤!)然后把BOT拉进去 从人员列表里面提升权限,不要从管理员里面设置(会导致提示无法读取信息) 然后就可以使用了 这里需要注意 群组里面的管理员不要开启匿名发言的那个权限 不然 无法通过机器人给对方回复消息

部署方式(Cloudflare Dashboard 无指令)

本部署指南适用于通过 Cloudflare 网页界面操作,无需使用 Wrangler CLI 或本地开发环境。

步骤一:创建 D1 数据库

  1. 登录 Cloudflare Dashboard。
  2. 点击右边导航里的存储和数据库,点击下面的 D1 SOL数据库 然后点击右上角的*创建数据库**,输入数据库名称(例如:tg-bot-db
  3. 进入您创建的 D1 数据库,点击 控制台 ,有一个执行步骤,将下面三段执行语句复制到执行窗口,点击执行即可,会弹出响应时间即为部署成功**:

– ① users 表

1
2
3
4
5
6
7
8
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 表

1
2
3
4
CREATE TABLE IF NOT EXISTS config (
    key TEXT PRIMARY KEY,
    value TEXT
);

– ③ messages 表

1
2
3
4
5
6
7
CREATE TABLE IF NOT EXISTS messages (
    user_id TEXT,
    message_id TEXT,
    text TEXT,
    date INTEGER,
    PRIMARY KEY (user_id, message_id)
);

步骤二:创建 Worker 服务并部署代码

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

步骤三:配置 D1 绑定

  1. 点击进入你刚刚创建的workers项目。
  2. 选择 绑定 标签 然后 点击 添加绑定 在右边导航里选择D1数据库 点击 添加绑定
  3. 点击 添加 D1 数据库
    • 变量名称 中,必须 填写 TG_BOT_DB
    • D1 数据库 中,选择您在步骤一中创建的数据库(例如:tg-bot-db)。
  4. 点击 添加

步骤四:配置环境变量

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

步骤五:设置 Webhook

这是最后一步,需要将您的 Worker URL 注册到 Telegram。您可以在浏览器中访问以下 URL 完成设置:

1
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/ 如果返回 {"ok":true,"result":true,"description":"Webhook was set"},则表示部署成功。

现在,管理员私聊 Bot 发送 /start 即可进入配置菜单。

使用 Hugo 构建
主题 StackJimmy 设计