Skip to content

提交事件说明

Hstb edited this page Aug 28, 2017 · 1 revision

说明

目前支持

  • 使用SocketHTTP(S)方法提交数据
  • 使用jsonkey=value(url参数形式) 的数据格式
  • 提交 校验参数(Token) 达到防盗链效果

校验参数说明

如果设置了 校验数据 所需的key,那么,插件在每次提交的数据内会附加参数:authTimeauthToken,如

{
    "authTime":1503725239,
    "authToken":"12bb459428005008d7ba7503a697ea02"
}

其中,

  • authTime表示 当前时间的十位时间戳,
  • authToken表示 校验参数Token

authToken的计算方法:

  1. 获取 当前时间的十位时间戳,作为authTime
  2. 将 检验数据所设置的keyauthTime组合成 key:authTime 形式的字符串
  3. 计算 第2步获得的字符串 的MD5值,应为 32位小写形式
示例:
  • PHP
$key = '456'; //检验数据所设置的key
$authTime = time(); //当前时间的十位时间戳
$authToken = md5("$key:$authTime"); //计算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()

服务端(PHPPython等)应做好判断,避免接口被误调用

提交说明

  • 事件的每个属性 (来源QQ,消息类型)直接作为根属性
  • 每个事件提交的属性并不相同,但可能存在一些「公共属性」。

对提交过程时的响应数据说明

  • 输出的数据必须为 json 数据格式,允许输出多行json文本
  • 如果不需要插件处理返回的数据,可以直接输出[]
  • 必须输出内容,否则插件会视为与接口的通信失败,哪怕状态码为200

事件列表 && 提交数据

注意

  • 属性名为 a.xx 格式,则表示这是一个子属性
  • 如果属性类型为array,并且使用key=value形式提交,则需对该属性的值进行json_decode
  • 聊天事件下(私聊,群,讨论组消息),如果消息内容包含图片(image),则会提交originalMsgimageInfo属性,例如:
{
    "originalMsg":"[CQ:image,file=930C95C555552FE8BB.png]",
    "imageInfo":[
        {
            "md5":"930C95C555552FE8BB4",
            "width":629,
            "height":523,
            "size":23472,
            "url":"https://gchat.qpic.cn",
            "addTime":1503650169
        }
    ]
}

属性说明:

属性名 类型 可能的值 说明
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
}

属性说明:

属性名 类型 可能的值 说明
type int 1 事件类型,此事件固定为1
subType int 12311 事件子类型,11/来自好友 1/来自在线状态 2/来自群 3/来自讨论组
qq number - 触发事件(即发送消息)的QQ号
msg string - 消息内容
font int - 对方使用的字体id

群消息(GroupMsg)

提交数据:

{
    "type":2,
    "subType":1,
    "qq":123456,
    "group":667890,
    "msg":"gg",
    "font":182084192
}

属性说明:

属性名 类型 可能的值 说明
type int 2 事件类型,此事件固定为2
subType int 123 事件子类型,1/普通消息,2/匿名消息,3/系统消息
group number - 事件来源的QQ群号
qq number - 触发事件(即发送消息)的QQ号
msg string - 消息内容
font int - 对方使用的字体id

收到匿名消息

收到匿名消息时,qq的值会固定为800010000, 并提交fromAnonymousanonymousInfo参数,如

{
    "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
}

属性说明:

属性名 类型 可能的值 说明
type int 4 事件类型,此事件固定为4
subType int 1 事件子类型,目前固定为1
group number - 事件来源的讨论组号
qq number - 触发事件(即发送消息)的QQ号
msg string - 消息内容
font int - 对方使用的字体id

群文件上传(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 12 事件子类型,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 12 事件子类型,1/群员离开,2/群员被踢
group number - 事件来源的QQ群号
qq number - 操作者QQ(仅subType2时存在)
beingOperateQQ number - 被操作QQ号(即被踢的QQ)

群成员增加(GroupMemberIncrease)

提交数据:

{
    "type":103,
    "subType":1,
    "qq":666663,
    "group":123456,
    "beingOperateQQ":11223456
}

属性说明:

属性名 类型 可能的值 说明
type int 103 事件类型,此事件固定为103
subType int 12 事件子类型,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
msg string - 附言
responseFlag string - 反馈标识,用于处理请求

群添加请求(GroupAddRequest)

提交数据:

{
    "type":302,
    "subType":1,
    "qq":23333333,
    "group":123456,
    "msg":"",
    "responseFlag":"2477"
}

属性说明:

属性名 类型 可能的值 说明
type int 301 事件类型,此事件固定为301
subType int 1 事件子类型,目前固定为1
group number - 事件来源的QQ群号
qq number - 来源QQ(即请求加群的QQ)
msg string - 附言
responseFlag string - 反馈标识,用于处理请求