模块化机器人目录说明+图文介绍
模块化机器人框架根目录
启动命令:./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'] = "图片地址";
很简单 很快速就可以开发各种功能 更多教程请参考后续我发布的