关于
本次大更新主要由于上次酷Q凉凉导致停更的问题,此次基于的是qqmini框架,回调和推送插件是httpAPI,由于此框架暂时还无法发图,所以部分功能搁置还没写,等待后续更新把;
此次更新最主要的就是重构了全部代码,把以前的乱糟糟代码进行分类、模块化,让开发者更加容易二次开发,直接添加自己的功能函数就可以了。
让我们来搭建一个属于自己的机器人:
机器人搭建
- 运行环境要求Windows7/server2012以上系统,有C++和.NET运行环境。
- 下载并安装框架:
https://qqmini.cc/
设置为TIM协议,然后登录自己的机器人QQ。 - 下载并启用插件:QQMini HTTP API 插件
https://forum.qqmini.cc/forum.php?mod=viewthread&tid=34&fromuid=10391
- 设置插件:
消息推送:http://127.0.0.1:88/post/ (端口自行配置,但是在后续创建网站的时候要配置你填写的端口)
本地端口:80(可自行配置,但是在后续PHP文件要改成你配置的端口)
- 下载
phpstudy_pro
Windows版并安装 - 用
phpstudy_pro
创建网站,网站域名填写127.0.0.1
,端口填写88
(HTTP API 插件配置的推送地址的端口) - 浏览器访问
http://127.0.0.1:88/
看是否正常。 - 在
phpstudy_pro
点击你创建的网站的管理按钮->打开根目录->在根目录创建 post 文件夹,文件夹名称自己随便写,但是在HTTP API插件的消息推送配置就要写你创建的文件夹名。 - 然后下载代码包:https://github.com/tjitnet/xming
- 解压所有文件在 post 文件夹中
- 用专业的代码编辑器 打开Config.php 修改里面的配置信息。
- 然后浏览器访问 http://127.0.0.1:88/post/ 看看是否显示机器人配置页面。
- 如果机器人配置页面显示的机器人QQ和昵称正常就OK,如果取不到就重新启用qqmini插件。
二次开发<添加自己的功能>
首先我们要知道几个文件是干什么的:
文件名 | 说明 |
---|---|
index.php | 机器人消息推送接口/入口文件(后续可用于开发API或更多领域的功能) |
Config.php | 机器人功能配置文件 |
Robot.Class.php | 机器人核心功能,包括传递全局操作变量和函数,一般人不用管 |
function.php | 机器人功能函数模块文件,可添加你自定义的功能函数/方法(我们主要用这个) |
添加自己的功能函数/方法:
用代码编辑器打开Config.php,定位到function_list()这个函数,然后在下面的数组中添加自己的函数名称,格式是:
消息关键词=>函数名称
这种格式是直接监控群里或者私聊的关键词来调用你自定义的函数,如果你不想监控关键词,只要是机器人收到消息就执行的函数就这把你的函数名称写到
function
下,这个function下的函数的意义就是 不管什么消息或者监控多个关键词,或者其他想干嘛都可以写到function中。示例代码:
// 基于Config.php下的function_list()函数添加自己的功能
function function_list() { $func_list_arr = [ //监控的关键词 '复读' => 'fudu', 'function' => [ //不监控关键词直接执行的功能 'demo', ] ]; return $func_list_arr; }
这里添加好了自己的函数名,在哪写代码呢?
打开function.php文件,定位到 -> class -> Robot_function {}中添加自己的功能函数/方法
示例代码
class Robot_function { /** * function fudu() 下面这里要和你在Config.php下的function_list()函数添加的函数名相同,否则会运行错误 */ public function fudu() { /** * $GLOBALS['msg'] 是全局变量获取收到的消息 * 我们收到消息后通过Robot::msg_get发送出去就实现复读功能了。 */ Robot::msg_get($GLOBALS['msg']); } /** * 演示直接执行的功能demo */ public function demo() { Robot::msg_get('我收到消息了' . $GLOBALS['msg']); //收到消息后回复"我收到消息了"加你发送的消息 } }
这样,一个自己的功能就大功告成了,你还可以基于下面全局变量开发更多有意思的功能:
附:全局变量列表
调用方式 :
例如获取收到的消息:$GLOBALS['msg']
msg改成下面的name即可
name | 说明 |
---|---|
config | Config.php下的function config()机器人功能配置数组 |
host | HTTP API接口地址 |
API_KEY | API平台密钥 apiecho.com |
Robot | 机器人QQ |
msg | 收到的消息字符串 |
type | 收到的消息类型,可根据“httpAPI消息推送(回调).txt”查看 |
qq | 收到消息的来自QQ |
guid | 收到消息来自群号 |