模块化机器人目录说明+图文介绍
模块化机器人框架根目录

启动命令:./97bot start 调试模式 (如果后台模式保持运行则使用:./97bot start -d )
(本机器人框架,采用多线程 高并发 本地grpc消息交互 无需调用电报机器人API 响应非常快 )
bot 机器人代码目录

目录说明
_info 模块信息功能目录
api_botqun 机器人进出群消息事件
api_callback 按钮点击事件
api_command /命令菜单事件
api_game 游戏点击事件
api_message 正常聊天消息事件(含图文 文件 视频等消息)
api_query 内联查询事件(@机器人时触发,机器人需开放内联功能)
api_qunadmin 群组管理员事件
api_userqun 群组用户进出群事件
language 多语言存放目录
mdb 数据查询构造器-模型目录
queue 队列消息自动处理目录
res 资源目录(用于开发功能模块时图标,预览图存放)
task 定时任务执行目录
web API业务目录 举例目录下的:test123.php(你可以通过http访问:http://你的域名/web/test123/hi)
后台机器人列表图
部署后 只需1套代码,可以同时支持无限个机器人(自己随意增加)
每个机器人可以自定义允许使用功能模块,设定到期时间,到期后将无法使用,(会考虑允许设定收费价格 让你的客户自助续费使用机器人)
模块功能开发说明:
机器人部署后对应的事件目录下 自己新建一个文件就可以开发自己想要的功能(由于是模块化开发 因此你自己新建文件开发功能,不会对原有的其它模块功能造成任何影响)
后续我会出各种功能的开发教程 非常简单
下面我举例发一个简单的例子 消息事件 处理 代码:
<?php
namespace mybot\api_message;
use plugin\tgbot\app\controller\Base;
use plugin\tgbot\app\controller\Template;
#通用功能
class index {
/**
* 【参数解答】
* $message['bot'] = 机器人配置信息
* $message['msgId'] = 聊天消息唯一ID
*
* $message['chatType'] = 聊天类型 群=supergroup 私聊=private
* $message['chatId'] = 聊天窗口ID
* $message['chatUser'] = 聊天窗口用户名(@xxx)
* $message['chatName'] = 聊天窗口标题 - 群组=群名称 ,用户=用户昵称
*
* $message['formId'] = 发消息的人ID
* $message['formUser'] = 发消息的人用户名
* $message['formName'] = 发消息的人昵称
* $message['fromVip'] = 发消息的人是否是电报VIP 0否 1是
* $message['fromLang'] = 发消息的人电报客户端语言(多语言需要)
*
* $message['text'] = 消息文本内容
* $message['time'] = 消息到达-服务器时间戳
* $message['tgTime'] = 消息到达-电报官方时间戳
*
* $message['photo'] = 有图片时为图片数据信息-自己打印查看 没有为0
* $message['document'] = 有文件时为文件数据信息-自己打印查看 没有为0
* $message['video'] = 有视频时为视频数据信息-自己打印查看 没有为0
* $message['gif'] = 有动画图片时为动画数据信息-自己打印查看 没有为0
*
* $message['isHuiFu'] = 是否属回复消息?1是 0否 :↓ 属于回复消息时才有以下参数
* $message['HuiFu']['msgId'] = 被回复的消息ID
* $message['HuiFu']['isBot'] = 被回复的目标是否为机器人 1是0否
* $message['HuiFu']['botUser']= 被回复的目标是机器人时才有效,返回机器人用户名
* $message['HuiFu']['toId'] = 被回复消息的人ID
* $message['HuiFu']['toUser'] = 被回复消息的人用户名
* $message['HuiFu']['toVip'] = 被回复消息的人是否是电报VIP 0否 1是
* $message['HuiFu']['text'] = 被回复消息的内容
*
* $ret支持回调参数:sendText(文本消息) sendPhoto(发送照片) sendVideo(发送视频) anniu(消息按钮) [ jianpan(回复键盘) && jianpanText(文字消息) || jianpanPhoto(照片消息)]
* @param $id
* @return array
*/
#默认执行函数
public function index($message){
$ret['key']=pathinfo(basename(__FILE__), PATHINFO_FILENAME);
$ret['level']=100; //优先级 (当存在多个模块都返回了文本消息或按钮时生效)数值大排上面 ,数值小排下面
if($message["isHuiFu"]){
if($message["HuiFu"]["isBot"]){
if($message["HuiFu"]["botUser"] != $message["bot"]["API_BOT"]){
return $ret;
}
}
}
#-----------------以上核心代码勿动 level 视情况调整改动--------------------------
return $ret;
}
}如上面所示每个事件里面我都给了例子 以及封装好了成品,
比如你想实现当用户发送消息:测试123 机器人自动回:你好456
那么只需要在:
#-----------------以上核心代码勿动 level 视情况调整改动--------------------------
下面写代码:
if($message['text'] == "测试123"){ //判断消息内容是否等于测试123
$ret['sendText'] = "你好456"; //固定回复参数:sendText 回复内容为:你好456
}
sendText 代表回复文本消息
sendPhoto 代表回复图片 代码如下:
$ret['sendPhoto'] = "图片地址";
很简单 很快速就可以开发各种功能 更多教程请参考后续我发布的


