共计 1913 个字符,预计需要花费 5 分钟才能阅读完成。
TG双向助手是由本站开发的一个功能强大、基于 Telegraf 开发的 Telegram 客服机器人。它旨在为用户和客服团队之间建立一个高效、可管理的沟通桥梁,支持多客服协作、智能分配、排队以及会话管理。
Github地址
https://github.com/www9hnet/Two-way-tool
核心功能
- 多客服协作:支持多个客服账号同时在线,共同处理用户咨询。
- 角色权限系统:内置管理员、客服和普通用户三种角色,权责分明。
- 智能会话分配:自动将新用户分配给当前空闲的客服。
- 用户等待队列:客服全忙时,新用户会自动进入等待队列,并在客服空闲时被接入。
- 历史会话观察:一位用户的所有历史接待客服,都能以“观察者”身份收到后续会话更新,确保服务连贯性。
- 客服申请与审批:用户可申请成为客服,由管理员在线审批,操作便捷。
- 会话管理:客服可以轻松结束与用户的会话,或将用户拉入黑名单。
- 黑名单系统:有效屏蔽恶意用户,被拉黑的用户消息将被机器人自动忽略。
- 数据持久化:所有用户、客服和会话数据都将保存在本地,确保数据不丢失。
- 私有化部署:代码开源,没有任何加密,客户数据不会被他人获取。
工作流程
- 用户发起咨询:普通用户向机器人发送任何非指令消息,即视为发起一次咨询。
- 机器人分配客服:
- 如果存在空闲客服,机器人会随机选择一位,建立会话连接。
- 如果所有客服都在忙,用户会被告知已进入等待队列。
- 客服与用户沟通:
- 用户的消息会被机器人转发给指定的客服。消息会附带用户信息(如
@username(ID)
)和操作按钮。 - 客服通过直接发送内容或回复由机器人转发的消息,即可将内容发送给用户。
- 用户的消息会被机器人转发给指定的客服。消息会附带用户信息(如
- 会话结束:客服可以使用
/close
指令或点击“结束会话”按钮来关闭当前对话,之后便可接待下一位用户。
安装与部署
1.环境准备
- Node.js (v16 或更高版本)
- 一个通过 @BotFather 创建的 Telegram 机器人及其 Token
2.下载与安装
# 克隆仓库 git clone https://github.com/www9hnet/two-way-tool cd two-way-tool # 安装依赖 npm install
3.运行机器人
在项目根目录下创建一个名为 .env
的文件,并填入您的机器人 Token:
.env
BOT_TOKEN=123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
4.首次初始化(关键步骤)
您可以使用 node
直接运行,或使用 pm2
进行持久化部署。
直接运行(用于调试):
node index.js
使用 PM2 部署(推荐):
</p> # 全局安装 pm2 npm install -g pm2 # 启动并命名服务 pm2 start index.js –name tg-two-way-tool <p dir="auto">
5.首次初始化(关键步骤)
机器人首次运行后,它尚未被激活。您需要成为第一个管理员来完成初始化。
-
向您的机器人发送
/start
。 -
然后,发送初始化指令,并将您的机器人 Token 作为参数传入:
/init 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
注意:此操作仅需执行一次。成功后,您将自动成为管理员和客服。此后
/init
指令将失效。
指令参考
命令 (Command) | 描述 (Description) |
---|---|
/start |
显示欢迎信息和基本介绍。 |
/bindService |
申请成为客服,申请将被发送给所有管理员进行审批。 |
/rebind |
如果您在新的设备或对话框中与机器人交互,使用此命令更新您的会话ID,确保能正常收到消息。 |
面向客服 (Service)
命令 (Command) | 描述 (Description) |
---|---|
/close |
关闭当前正在接待的会话。如果未接待用户,可通过回复特定用户消息来关闭该历史会话。 |
/block |
拉黑当前正在接待的用户。如果未接待用户,可通过回复特定用户消息来拉黑该用户。 |
/unblock <ID或@用户名> |
将指定用户从黑名单中移除。 |
/blacklist |
查看完整的黑名单列表。 |
面向管理员 (Admin)
管理员拥有所有客服的权限,并额外拥有以下管理权限:
命令 (Command) | 描述 (Description) |
---|---|
/init <BOT_TOKEN> |
(仅首次使用) 初始化机器人,并将自己设为管理员。 |
/list |
查看所有客服及其当前状态(空闲/接待中)。 |
/unbindService @客服用户名 |
移除指定用户的客服身份。不能移除管理员或自己。 |
数据持久化
本机器人使用一个本地文件 (setting.json
,由 db.js
管理) 来存储所有数据。请务必定期备份此文件,以防数据丢失。
正文完
发表至: Telegram机器人
近两天内