🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
目录导航: [TOC] 说明 --- ### 目前支持 * 使用``Socket``和``HTTP(S)``方法提交数据 * 使用``json``和``key=value``(url参数形式) 的数据格式 * 提交 校验参数(Token) 达到防盗链效果 ### 校验参数说明 如果设置了 校验数据 所需的```key```,那么,插件在每次提交的数据内会附加参数:```authTime```和```authToken```,如 ~~~ { "authTime":1503725239, "authToken":"12bb459428005008d7ba7503a697ea02" } ~~~ 其中, * ```authTime```表示 当前时间的十位时间戳, * ```authToken```表示 校验参数```Token```。 #### ```authToken```的计算方法 1. 获取 **当前时间的十位时间戳**,作为```authTime``` 2. 将 检验数据所设置的```key```与```authTime```组合成 **```key:authTime```** 形式的字符串 3. 计算 第2步获得的字符串 的**MD5**值,应为 **32位小写形式** ##### 示例: * PHP ~~~ $key = '456'; //检验数据所设置的key $authTime = time(); //当前时间的十位时间戳 $authToken = md5($key.':'.$authTime); //计算token $sendData['authTime']=$authTime //追加 时效参数 $sendData['authToken']=$authToken //追加 token参数 ~~~ * Python 3 ~~~ # 引用库 import hashlib from datetime import datetime # 当前时间的十位时间戳 time = int(datetime.now().timestamp()) authTime = time # 检验数据所设置的key key = '456' # 计算token md5 = hashlib.md5() string = bytes('%s:%d' % (key, time), encoding='utf-8') md5.update(string) authToken = md5.hexdigest() ~~~ 服务端(```PHP```,```Python```等)应做好判断,避免接口被误调用 提交说明 --- * 事件的每个属性 *(来源QQ,消息类型)* 将**直接作为根属性** * 每个事件提交的属性并不相同,但可能存在一些「公共属性」。 对提交过程时的响应数据说明 --- * 输出的数据必须为 **```json```** 数据格式,**允许输出多行json文本** * 如果**不需要插件处理**返回的数据,可以直接输出```[]``` * **必须输出内容**,否则插件会视为与接口通信失败,即使HTTP状态码为```200``` 事件列表 && 提交数据 --- ### **注意** * 若**属性名为 `a.xx` 格式**,则**表示这是一个子属性** * 如果**属性类型为```array```,并且使用```key=value```形式提交,则需对该属性的值进行```json_decode```** #### **公共数据** * 所有事件均会携带的参数,部分参数不再下面赘述。 ```json { "type":104, "subType":1, "time":1583338918, "loginQQ":12345, "handle":12345 } ``` | 参数名 | 类型 | 说明 | | --- | --- | --- | | `type` | number | 事件类型标识 | | `subType` | number | 事件子类型标识 | | `time` | number | 收到事件时的时间,十位时间戳形式 | | `loginQQ` | number | 事件所属的机器人QQ | | `handle` | number | 在事件处理完成前的唯一处理标识 | #### **图片数据** * 在**聊天事件下**(私聊,群,讨论组消息),**如果消息内容包含图片(image),则会提交```originalMsg```,```imageInfo```属性**,例如: ~~~ { "originalMsg":"[CQ:image,file=930C95C5.png]", "imageInfo":[ { "md5":"930C95C5", "width":629, "height":523, "size":23472, "url":"https://gchat.qpic.cn", "addTime":150365016 } ] } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```originalMsg``` | string | - | 消息原文 | | ```imageInfo``` | array | - | 图片信息数组 | | ```imageInfo[i]``` | object | - | 第```++i```个图片的信息 | | ```imageInfo[i].md5``` | string | - | 图片的md5值 | | ```imageInfo[i].width``` | int | - | 图片的宽度 | | ```imageInfo[i].height``` | int | - | 图片的高度 | | ```imageInfo[i].size``` | int | - | 图片的大小,单位:B | | ```imageInfo[i].url``` | string | - | 图片的下载地址 | | ```imageInfo[i].addTime``` | int | - | 图片的上传时间,时间戳形式 | ### **私聊消息(`PrivateMsg`)** 提交数据: ~~~ { "type":1, "subType":11, "qq":123456, "msg":"gg", "font":6623256, "msgID":999 } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```1``` | 事件类型,此事件固定为```1``` | | ```subType``` | int | ``1``,``2``,``3``,```11``` | 事件子类型,``11``/来自好友 ``1``/来自在线状态 ``2``/来自群 ``3``/来自讨论组 | | ```qq``` | number | - | 触发事件(即发送消息)的QQ号 | | ```msg``` | string | - | 消息内容 | | ```font``` | int | - | 对方使用的字体id | | ```msgID``` | int | - | 消息ID,调用API **`deleteMsg[撤回消息]`** 时需要传递此参数 | ### **群消息(`GroupMsg`)** 提交数据: ~~~ { "type":2, "subType":1, "qq":123456, "group":667890, "msg":"gg", "font":182084192, "msgID":999 } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```2``` | 事件类型,此事件固定为```2``` | | ```subType``` | int | ``1``,``2``,``3`` | 事件子类型,```1```/普通消息,```2```/匿名消息,```3```/系统消息 | | ```group``` | number | - | 事件来源的QQ群号 | | ```qq``` | number | - | 触发事件(即发送消息)的QQ号 | | ```msg``` | string | - | 消息内容 | | ```font``` | int | - | 对方使用的字体id | | ```msgID``` | int | - | 消息ID,调用API **`deleteMsg[撤回消息]`** 时需要传递此参数 | #### 收到匿名消息 收到匿名消息时,```qq```的值会固定为```800010000```, 并提交```fromAnonymous```,```anonymousInfo```参数,如 ~~~ { "fromAnonymous":"AAAAA0Q194=", "anonymousInfo":{ "aid":1000013, "code":"曹植", "token":"S4EyN0c8/DX3g==" } } ~~~ 属性说明: | 属性名 | 类型 | 说明 | | --- | --- | --- | --- | | ```fromAnonymous``` | string | 来源匿名用户 | | ```anonymousInfo``` | object | 匿名用户的信息 | | ```anonymousInfo.aid``` | number | 匿名用户标识 | | ```anonymousInfo.code``` | string | 匿名用户代号,如"大力鬼王" | | ```anonymousInfo.token``` | string | 匿名用户Token,已Base64编码 | ### **讨论组消息(`DiscussMsg`)** 提交数据: ~~~ { "type":4, "subType":1, "qq":6767688, "group":123456, "msg":"gg", "font":44199040, "msgID":999 } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```4``` | 事件类型,此事件固定为```4``` | | ```subType``` | int | ``1`` | 事件子类型,目前固定为```1``` | | ```group``` | number | - | 事件来源的讨论组号 | | ```qq``` | number | - | 触发事件(即发送消息)的QQ号 | | ```msg``` | string | - | 消息内容 | | ```font``` | int | - | 对方使用的字体id | | ```msgID``` | int | - | 消息ID,调用API **`deleteMsg[撤回消息]`** 时需要传递此参数 | ### **群文件上传(`GroupUpload`)** 提交数据: ~~~ { "type":11, "subType":1, "qq":68888890, "group":11111111, "file":"AC/b=", "fileInfo":{ "size":21246835, "busid":102, "name":"com.segmentfault.app-1.apk", "id":"/8a179ccf-bc0f-4abd-8656-beb6666b0452" } } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```11``` | 事件类型,此事件固定为```11``` | | ```subType``` | int | ``1`` | 事件子类型,目前固定为```1``` | | ```group``` | number | - | 事件来源的QQ群号 | | ```qq``` | number | - | 触发事件(即发送消息)的QQ号 | | ```file``` | string | - | 无用的文件信息 | | ```fileInfo``` | object | - | 文件信息 | | ```fileInfo.size``` | int | - | 文件大小 | | ```fileInfo.busid``` | int | - | 文件busid | | ```fileInfo.name``` | string | - | 文件名 | | ```fileInfo.id``` | string | - | 文件id | ### **群管理员变动(`GroupAdminChange`)** 提交数据: ~~~ { "type":101, "subType":1, "group":123456, "beingOperateQQ":123456 } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```101``` | 事件类型,此事件固定为```101``` | | ```subType``` | int | ```1```,```2``` | 事件子类型,```1```/被取消管理员,```2```/被设置管理员 | | ```group``` | number | - | 事件来源的QQ群号 | | ```beingOperateQQ``` | number | - | 被操作的QQ号 | ### **群成员减少(`GroupMemberDecrease`)** 提交数据: ~~~ { "type":102, "subType":2, "qq":99998, "group":123456, "beingOperateQQ":11223456 } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```102``` | 事件类型,此事件固定为```102``` | | ```subType``` | int | ```1```,```2``` | 事件子类型,```1```/群员离开,```2```/群员被踢 | | ```group``` | number | - | 事件来源的QQ群号 | | ```qq``` | number | - | 操作者QQ(仅```subType```为```2```时存在) | | ```beingOperateQQ``` | number | - | 被操作QQ号(即被踢的QQ) | ### **群成员增加(`GroupMemberIncrease`)** 提交数据: ~~~ { "type":103, "subType":1, "qq":666663, "group":123456, "beingOperateQQ":11223456 } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```103``` | 事件类型,此事件固定为```103``` | | ```subType``` | int | ```1```,```2``` | 事件子类型,```1```/管理员已同意,```2```/管理员邀请 | | ```group``` | number | - | 事件来源的QQ群号 | | ```qq``` | number | - | 操作者QQ(即管理员QQ) | | ```beingOperateQQ``` | number | - | 被操作QQ(即加群的QQ) | ### **好友已添加(`FriendAdd`)** 提交数据: ~~~ { "type":201, "subType":1, "qq":11223456 } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```201``` | 事件类型,此事件固定为```201``` | | ```subType``` | int | ```1``` | 事件子类型,目前固定为```1``` | | ```qq``` | number | - | 来源QQ | ### **好友添加请求(`FriendAddRequest`)** 提交数据: ~~~ { "type":301, "subType":1, "qq":11223456, "msg":"问题1:加我作甚么 回答:。。。", "responseFlag":"2479" } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```301``` | 事件类型,此事件固定为```301``` | | ```subType``` | int | ```1``` | 事件子类型,目前固定为```1``` | | `qq` | int | - | 请求添加好友的QQ | ```msg``` | string | - | 附言 | | ```responseFlag``` | string | - | 反馈标识,调用API **`setFriendAddRequest[置好友添加请求]`** 时需要传递此参数 | ### **群添加请求(`GroupAddRequest`)** 提交数据: ~~~ { "type":302, "subType":1, "qq":23333333, "group":123456, "msg":"", "responseFlag":"2477" } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```302``` | 事件类型,此事件固定为```302``` | | ```subType``` | int | ```1```,```2``` | 事件子类型,```1```/他人申请入群,```2```/自己(即登录号)受邀入群 | | ```group``` | number | - | 事件来源的QQ群号 | | ```qq``` | number | - | 来源QQ(即请求加群的QQ) | | ```msg``` | string | - | 附言 | | ```responseFlag``` | string | - | 反馈标识,调用API **`setGroupAddRequest[置群添加请求]`** 时需要传递此参数 | ### **群禁言事件(`GroupBan`)** 提交数据: ~~~ { "type":104, "subType":1, "time":1583338918, "loginQQ":12345, "qq":23456, "group":34567, "beingOperateQQ":45678, "duration":0 } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | ```type``` | int | ```104``` | 事件类型,此事件固定为```104``` | | `subType` | int | `1`,`2` | 事件子类型,`1`/被解禁,`2`/被禁言 | | ```group``` | number | - | 事件来源的QQ群号 | | ```qq``` | number | - | 操作者QQ | | `beingOperateAccount` | number | - | 被禁言的QQ,(若为全群禁言/解禁,则本参数为 0) | | `duration` | number | - | 禁言时长(单位:秒,仅子类型为`2`,即被禁言时可用) | ### **点击菜单事件(`ClickMenu`)** 提交数据: ~~~ { "type":901, "subType":0 } ~~~ 属性说明: | 属性名 | 类型 | 可能的值 | 说明 | | --- | --- | --- | --- | | `type` | int | `901` | 事件类型,此事件固定为`901` | | `subType` | int | `0` | 事件子类型,目前固定为`0` |