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

分类:模块机器人开发教程 时间:2023-10-26 19:51 浏览:0 评论:2
0

模块化机器人框架根目录

image

启动命令:./97bot start    调试模式     (如果后台模式保持运行则使用:./97bot start -d 

(本机器人框架,采用多线程 高并发 本地grpc消息交互 无需调用电报机器人API 响应非常快 )

bot 机器人代码目录

1233.png

目录说明

_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套代码,可以同时支持无限个机器人(自己随意增加)

33

 每个机器人可以自定义允许使用功能模块,设定到期时间,到期后将无法使用,(会考虑允许设定收费价格 让你的客户自助续费使用机器人)
44

 模块功能开发说明:

机器人部署后对应的事件目录下 自己新建一个文件就可以开发自己想要的功能(由于是模块化开发 因此你自己新建文件开发功能,不会对原有的其它模块功能造成任何影响

后续我会出各种功能的开发教程 非常简单


下面我举例发一个简单的例子 消息事件 处理 代码:

<?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
}

45

sendText 代表回复文本消息

sendPhoto 代表回复图片 代码如下:

$ret['sendPhoto'] = "图片地址";

很简单 很快速就可以开发各种功能  更多教程请参考后续我发布的

1. 下载后遇到任何问题可以到:问答社区 发表帖子请求帮助
2. 本文章所属:模块机器人开发教程 > 模块化机器人目录说明+图文介绍

用户评论