PHP_Robot项目概览?


它是一个基于CQhttp的QQ机器人框架,全部由PHP编写。

采用SG11加密核心文件,对CQ码提供了全部支持!

您可以使用它快速部署一个QQ机器人~

在阅读本文档前,你可以使用Ctrl+F直接搜索需要的内容

此外您还可以加入此项目?群:783742193

 

环境配置?


  • PHP7.0 安装 SG11扩展
  • 放行分发器和主控的端口
  • 配置伪静态
  • 配置主控器的Config.yml与分发器的Config.json

 

伪静态


location ~ \.(json)$ {
    deny all;
}
location / {
  try_files $uri $uri/ $uri.php?$args;
}

 

其他的不在这里过多展示,详见视频教程(PHP_Robot部署教程——视频篇-Project-老嘤的秘密基地 (loyin.top)

 

故障排除❓


如果您服务器无法部署此项目?

  1. 在go-cqhttp根目录下找到runoob.log,检查程序运行日志。
  2. 检查端口放行情况(阿里腾讯等需要编辑安全组,不能在宝塔直接更改)

如果还是无法部署,请加入?群进行询问!

 

目录结构?


此处我将主控器放在了root目录所以你们不必要创建root目录

include->分发器核心文件目录

logs->分发器日志目录

thesaurus->词库目录

  • group->群组控制器(群组词库)
  • private->私聊控制器(私聊词库)
  • require->特殊事件监听或处理器(监听词库)
  • model->模型目录

需要自行创建除model外的三个目录,model可以直接复制在特定目录下!

关于词库操作请往下翻找,此处指介绍目录作用!

utils->工具类目录(插件)

工具类(插件)命名规范:com.xxxxx(如com.newcloud)

同时建议xxx为作者标识,同一作者作品放在一个目录中便于调用。

Config.json->配置文件

{
  "HOST": "127.0.0.1",//本地IP,写主控器地址
  "PORT": "5555",//写主控器端口
  "MASTER":"10010",//主人QQ
  "DEBUG": true,//出现错误私信主人功能开关
  "AUTH_GROUP":["123456"]//开启机器人的群号
}

Main.php->分发器入口文件

 

词库


要写一个好的词库首先要确定你词库的方向。

Group、Private、Request当然你可以选择他们的全部,确定方向后。

复制Model,在对应的方向文件夹中创建类文件,所有的词库执行请放在main方法中。

类名与文件名统一!

这里是一个备案查询的实例:

<?php
/*
 * Copyright (c) 2022. New Cloud | Pomelo
 * Email: <2284186613@qq.com>.
 * ProjectName:<New Cloud | PHP_Robot>
 * Developer:["Pomelo","LoYin"];
 */

include_once $_SERVER['DOCUMENT_ROOT'] . '/include/Robot.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/utils/com.newcloud/RobotInterface.php';//加载实现接口!!!!!必须导入
/**
 * 框架默认接口
 */
include_once  $_SERVER['DOCUMENT_ROOT'] ."/utils/com.pomelo/HandleUtils.php";//工具类
class QueryBeiAn extends Robot implements RobotInterface {
    public function main(){
        if($this->getMessage()=="备案查询"){
            $this->sendGroupMsg($this->getGroupId(),"查询格式:查询备案 域名");
        }
        if(HandleUtils::isExist($this->getMessage(),"查询备案")){
            $domain=HandleUtils::getDomain($this->getMessage());
            if ($domain != "") {
                $result = json_decode($this->curl("https://api.oick.cn/icp/api.php?url=" . $domain, []), true);
                if ($result['code'] == "200") {
                    $message = "备案主体:" . $result['name'] . "\n";
                    $message .= "备案类型:" . $result['nature'] . "\n";
                    $message .= "ICP:" . $result['icp'];
                } else {
                    $message = "未有此域名ICP备案记录!";
                }
                $this->sendGroupMsg($this->getGroupId(),$message);
            } else {
                $this->sendGroupMsg($this->getGroupId(),"老板!请输入正确域名再查询。");
            }
        }
    }
}

引入了工具类:

HandleUtils::isExist($this->getMessage(),"查询备案")

调用了框架提供的方法:

$this->getMessage()

接下来我会更新《PHP_Robot框架方法文档》《PHP_Robot工具类开发教程》

感谢大家支持❤️❤️❤️❤️!