Api接口及使用方法
<ul>
<li>目前已知接口 CurrentQQ为当前已登录IOT的QQ 因为红包相关接口涉及财产问题暂不在此列出</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align: left;">请求地址</th>
<th style="text-align: left;">接口功能</th>
<th style="text-align: left;">请求方式</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">/v1/Github/InstallService</td>
<td style="text-align: left;">初始化IOT</td>
<td style="text-align: left;">GET</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=SendMsg&timeout=10</td>
<td style="text-align: left;">发送信息(包括图片、文本、好友、私人、群消息)</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=GetQQUserList&timeout=10</td>
<td style="text-align: left;">获取好友列表</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=SearchGroup&timeout=10</td>
<td style="text-align: left;">搜索QQ群组</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=GetGroupList&timeout=10</td>
<td style="text-align: left;">获取群列表</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=GetGroupUserList&timeout=10</td>
<td style="text-align: left;">获取群成员列表</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=QQZan&timeout=10</td>
<td style="text-align: left;">点赞</td>
<td style="text-align: left;">GET</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=AddQQUser&timeout=10</td>
<td style="text-align: left;">加好友</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/Login/GetQRcode</td>
<td style="text-align: left;">获取登录二维码</td>
<td style="text-align: left;">GET</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=RevokeMsg&timeout=10</td>
<td style="text-align: left;">撤回群成员消息(可撤回自己发的消息 或管理员权限撤回群成员消息)</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=ShutUp&timeout=10</td>
<td style="text-align: left;">禁言群成员或全员禁言</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/Group/Announce?qq=CurrentQQ</td>
<td style="text-align: left;">设置群公告</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=LogOut&timeout=10</td>
<td style="text-align: left;">退出指定QQ</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=DealFriend&timeout=10</td>
<td style="text-align: left;">处理好友请求</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=AnswerInviteGroup&timeout=10</td>
<td style="text-align: left;">处理群邀请</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=ModifyGroupCard&timeout=10</td>
<td style="text-align: left;">修改群名片</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=SetUniqueTitle&timeout=10</td>
<td style="text-align: left;">设置头衔</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/LuaApiCaller?qq=CurrentQQ&funcname=GetUserInfo&timeout=10</td>
<td style="text-align: left;">获取任意用户信息昵称头像等</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">/v1/ClusterInfo</td>
<td style="text-align: left;">获取当前集群消息</td>
<td style="text-align: left;">GET</td>
</tr>
</tbody>
</table>
<ul>
<li>备注:持续更新中</li>
</ul>
<hr />
<p><strong>IOT初始化:</strong> </p>
<ul>
<li>调用API之前必须初始化否正无法调用</li>
</ul>
<p><strong>请求URL:</strong> </p>
<ul>
<li><code>v1/Github/InstallService</code></li>
</ul>
<p><strong>请求方式:</strong></p>
<ul>
<li>
<p>GET </p>
<p><strong>返回示例</strong></p>
</li>
</ul>
<pre><code>ok</code></pre>
<hr />
<p><strong>发送消息:</strong> </p>
<ul>
<li>包含发送好友、群、群私聊三种方式</li>
</ul>
<p><strong>请求URL:</strong> </p>
<ul>
<li><code>/v1/LuaApiCaller?qq=CurrentQQ&funcname=SendMsg&timeout=10</code></li>
</ul>
<p><strong>请求方式:</strong></p>
<ul>
<li>POST</li>
</ul>
<p><strong>参数:</strong></p>
<ul>
<li>POST参数 根据具体情况选择性补充</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align: left;">字段</th>
<th style="text-align: left;">类型</th>
<th>注释</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">toUser</td>
<td style="text-align: left;">int</td>
<td>欲发给的对象 群或QQ好友或私聊对象</td>
</tr>
<tr>
<td style="text-align: left;">sendToType</td>
<td style="text-align: left;">int</td>
<td>发送消息对象的类型 1好友 2群3私聊</td>
</tr>
<tr>
<td style="text-align: left;">sendMsgType</td>
<td style="text-align: left;">string</td>
<td>欲发送消息的类型 TextMsg、JsonMsg、XmlMsg、ReplayMsg、TeXiaoTextMsg、PicMsg、VoiceMsg、PhoneMsg</td>
</tr>
<tr>
<td style="text-align: left;">groupid</td>
<td style="text-align: left;">int</td>
<td>发送私聊消息是 在此传入群ID 其他情况为0</td>
</tr>
<tr>
<td style="text-align: left;">content</td>
<td style="text-align: left;">string</td>
<td>发送的文本内容</td>
</tr>
<tr>
<td style="text-align: left;">atUser</td>
<td style="text-align: left;">int</td>
<td>At用户 传入用户的QQ号 其他情况为0</td>
</tr>
<tr>
<td style="text-align: left;">voiceUrl</td>
<td style="text-align: left;">string</td>
<td>发送语音的网络地址 skilk格式</td>
</tr>
<tr>
<td style="text-align: left;">voiceBase64Buf</td>
<td style="text-align: left;">string</td>
<td>发本地送语音的buf 转 bas64 编码</td>
</tr>
<tr>
<td style="text-align: left;">picUrl</td>
<td style="text-align: left;">string</td>
<td>发送图片的网络地址</td>
</tr>
<tr>
<td style="text-align: left;">picBase64Buf</td>
<td style="text-align: left;">string</td>
<td>发本地送图片的buf 转 bas64 编码</td>
</tr>
<tr>
<td style="text-align: left;">forwordBuf</td>
<td style="text-align: left;">string</td>
<td>待定</td>
</tr>
<tr>
<td style="text-align: left;">forwordField</td>
<td style="text-align: left;">string</td>
<td>待定</td>
</tr>
<tr>
<td style="text-align: left;">fileMd5</td>
<td style="text-align: left;">string</td>
<td>通过md5 值发送 图片</td>
</tr>
<tr>
<td style="text-align: left;">replayInfo</td>
<td style="text-align: left;">json</td>
<td>回复类型消息(回复某人的消息)</td>
</tr>
</tbody>
</table>
<ul>
<li>
<p>备注:发送数据是JSON数据</p>
</li>
<li>发送好友文本信息</li>
</ul>
<pre><code>{
"toUser": 123456789,
"sendToType": 1,
"groupid": 0,
"content": "测试",
"atUser": 0,
"sendMsgType": "TextMsg"
}</code></pre>
<ul>
<li>发送好友图片信息</li>
</ul>
<pre><code>{
"toUser": 123456789,
"sendToType": 1,
"sendMsgType": "PicMsg",
"content": "12313",
"groupid": 0,
"atUser": 0,
"picUrl": "http://gchat.qpic.cn/gchatpic_new/304980169/636617867-2534335053-8E6B948D1E7A4F96DB5F9C4A6050FB02/0?vuin=123456789&term=255&pictype=0",
"picBase64Buf": "",
"fileMd5": ""
}```
- 发送好友语音信息
</code></pre>
<p>{
"toUser": 123456789,
"sendToType": 1,
"sendMsgType": "VoiceMsg",
"content": "",
"groupid": 0,
"atUser": 0,
"voiceUrl": "<a href="http://123.151.144.89/?ver=2&rkey=3062020101045b305902010102010002041fdef8ae042431386a4f6a423874656b536d787033796b77767271684a6155325449344d4d4c5273716302045da7e84d041f0000000866696c6574797065000000013000000005636f64656300000001310400&voice_codec=1&filetype=0">http://123.151.144.89/?ver=2&rkey=3062020101045b305902010102010002041fdef8ae042431386a4f6a423874656b536d787033796b77767271684a6155325449344d4d4c5273716302045da7e84d041f0000000866696c6574797065000000013000000005636f64656300000001310400&voice_codec=1&filetype=0</a>",
"voiceBase64Buf": ""
}</p>
<pre><code>- 发送群文本信息</code></pre>
<p>{
"toUser": 123456789,
"sendToType": 2,
"sendMsgType": "TextMsg",
"content": "框架发送消息",
"groupid": 0,
"atUser": 0
}</p>
<pre><code>
- 发送群图片信息</code></pre>
<p>{
"toUser": 123456789,
"sendToType": 2,
"sendMsgType": "PicMsg",
"content": "测试发送图片",
"groupid": 0,
"atUser": 0,
"picUrl": "<a href="http://gchat.qpic.cn/gchatpic_new/304980169/636617867-2534335053-8E6B948D1E7A4F96DB5F9C4A6050FB02/0?vuin=123456789&term=255&pictype=0">http://gchat.qpic.cn/gchatpic_new/304980169/636617867-2534335053-8E6B948D1E7A4F96DB5F9C4A6050FB02/0?vuin=123456789&term=255&pictype=0</a>",
"picBase64Buf": "",
"fileMd5": ""
}</p>
<pre><code>
- 发送群语音信息</code></pre>
<p>{
"toUser": 123456789,
"sendToType": 2,
"sendMsgType": "VoiceMsg",
"content": "",
"groupid": 0,
"atUser": 0,
"voiceUrl": "<a href="http://123.151.144.89/?ver=2&rkey=3062020101045b305902010102010002041fdef8ae042431386a4f6a423874656b536d787033796b77767271684a6155325449344d4d4c5273716302045da7e84d041f0000000866696c6574797065000000013000000005636f64656300000001310400&voice_codec=1&filetype=0">http://123.151.144.89/?ver=2&rkey=3062020101045b305902010102010002041fdef8ae042431386a4f6a423874656b536d787033796b77767271684a6155325449344d4d4c5273716302045da7e84d041f0000000866696c6574797065000000013000000005636f64656300000001310400&voice_codec=1&filetype=0</a>",
"voiceBase64Buf": ""
}</p>
<pre><code>- 发送私聊文字消息</code></pre>
<p>{
"toUser": 770354028,
"sendToType": 3,
"sendMsgType": "TextMsg",
"content": "你好",
"groupid": 123456789,
"atUser": 0
}</p>
<pre><code>
- 发送私聊语音消息</code></pre>
<p>{
"toUser": 123456789,
"sendToType": 3,
"sendMsgType": "VoiceMsg",
"content": "",
"groupid": 123456789,
"atUser": 0,
"voiceUrl": "<a href="http://isure.stream.qqmusic.qq.com/C400000QAQM72uuIEZ.m4a?guid=7135428428&vkey=AC9C468669E71F6A1CB067BCE7F74DA651187E3462C344C186E55CD49C49732320D12DF2CA44E0A7C7B229FDDC01F37133066D1CF67B76CA&uin=310&fromtag=66">http://isure.stream.qqmusic.qq.com/C400000QAQM72uuIEZ.m4a?guid=7135428428&vkey=AC9C468669E71F6A1CB067BCE7F74DA651187E3462C344C186E55CD49C49732320D12DF2CA44E0A7C7B229FDDC01F37133066D1CF67B76CA&uin=310&fromtag=66</a>",
"voiceBase64Buf": ""
}</p>
<pre><code>
- 发送私聊图片消息
</code></pre>
<p>{
"toUser": 123456789,
"sendToType": 3,
"sendMsgType": "PicMsg",
"content": "图文测试",
"groupid": 123456789,
"atUser": 0,
"picUrl": "<a href="https://www.kriptoarena.com/uploads/kriptoarena-ethereum-teknik-analizi-2606.jpg">https://www.kriptoarena.com/uploads/kriptoarena-ethereum-teknik-analizi-2606.jpg</a>",
"picBase64Buf": "",
"fileMd5": ""
}</p>
<pre><code>
**返回示例**</code></pre>
<p>{"Msg":"","Ret":0}</p>
<pre><code>------------
**搜索QQ群:**
**请求URL:**
- ` /v1/LuaApiCaller?qq=CurrentQQ&funcname=SearchGroup&timeout=10`
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|Content |string| 地区|
|Page |int| 页数|
**返回参数说明**
|参数名|类型|说明|
|:----- |:-----|----- |
|GroupData |string |群名 |
|GroupDes |string |群介绍 |
|GroupID |int |群号 |
|GroupMaxMembers |int |群最大人数 |
|GroupName |string |群名 |
|GroupNotice |string |群公告 |
|GroupOwner |int |群主Q号 |
|GroupQuestion |string |进群问题 |
|GroupTotalMembers |int |当前群人数 |
**返回示例**
</code></pre>
<p>[
{
"GroupData": "深圳旅游,本群维护腾讯绿色环境,进行户外运动,健康旅游旅行,为广大市民提供一个交",
"GroupDes": "深圳旅游,本群维护腾讯绿色环境,进行户外运动,健康旅游旅行,为广大市民提供一个交流平台,每周提供多彩的旅游路线,有登山,露营,漂流,观光,欢迎大家报名参加。",
"GroupID": 24750406,
"GroupMaxMembers": 5000,
"GroupName": "深圳旅游",
"GroupNotice": "周日穿越三水线,新驴可以领到毕业证,有两个下撤点90元,周四前优惠20元宝安中心地铁白石龙丹竹头可上车sztshw.",
"GroupOwner": 695560966,
"GroupQuestion": "住深圳哪?为何加群?",
"GroupTotalMembers": 2880
}
]</p>
<pre><code>
------------
**获取好友列表:**
**请求URL:**
- `/v1/LuaApiCaller?qq=CurrentQQ&funcname=GetQQUserList&timeout=10 `
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|StartIndex |int| 最大值 StartIndex == Friend_count 说明拉取好友列表完毕|
**返回参数说明**
|字段|类型|注释|
|:---- |:------- |-- -
|Friend_count |int| 好友总人数|
|Friendlist |list| 好友详情|
|FriendUin |int| 好友总人数|
|IsRemark |bool| 是否有备注|
|NickName |int| QQ昵称|
|OnlineStr |string| 在线状态|
|Remark |string| 备注名字|
|Status |int| 在线状态值 已知在线10 隐身20|
**返回示例**
</code></pre>
<p>{
"Friend_count": 3,
"Friendlist": [
{
"FriendUin": 123456789,
"IsRemark": false,
"NickName": "kkkonee231",
"OnlineStr": "",
"Remark": "213213132",
"Status": 20
},
{
"FriendUin": 123456789,
"IsRemark": false,
"NickName": "亿下下",
"OnlineStr": "在线",
"Remark": "亿下下",
"Status": 20
},
{
"FriendUin": 123456789,
"IsRemark": false,
"NickName": "壹贰叁",
"OnlineStr": "在线",
"Remark": "壹贰叁",
"Status": 10
}
],
"GetfriendCount": 200,
"StartIndex": 200,
"Totoal_friend_count": 3
}</p>
<pre><code>------------
**撤回群消息(管理员可撤回其他人消息):**
**请求URL:**
- `/v1/LuaApiCaller?qq=CurrentQQ&funcname=RevokeMsg&timeout=10`
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|GroupID |int| 群号|
|MsgSeq |int| 消息序列号 需要从群消息里获取|
|MsgRandom |int| 随机值 需要获取并保存|
**返回参数说明** </code></pre>
<p>{"Msg":"Success","Ret":0}</p>
<pre><code>------------
**设置群公告:**
**请求URL:**
- `/v1/Group/Announce?qq=CurrentQQ `
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|GroupID |int| 群号|
|Title |int| 消息序列号 需要从群消息里获取|
|Text |string| 公告内容 最大值为600(PC上测试得到)|
|Type |string| 公告内容|
|Pinned |int| 是否置顶 1置顶 0不置顶|
**返回参数说明** </code></pre>
<p>{"Msg":"Success","Ret":0}</p>
<pre><code>------------
**撤回群消息(管理员可撤回其他人消息):**
**请求URL:**
- `/v1/LuaApiCaller?qq=CurrentQQ&funcname=RevokeMsg&timeout=10`
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|GroupID |int| 群号|
|MsgSeq |int| 消息序列号 需要从群消息里获取|
|MsgRandom |int| 随机值 需要获取并保存|
**返回参数说明** </code></pre>
<p>{"Msg":"Success","Ret":0}</p>
<pre><code>------------
**获取登陆二维码:**
**请求URL:**
- `/v1/Login/GetQRcode`
**请求方式:**
- GET
**返回数据说明** </code></pre>
<p><!DOCTYPE html></p>
<html lang="cn">
<img id="qrcode" src="data:image/png;base64,......." alt="" />
</html>
<pre><code>
------------
**获取群列表:**
**请求URL:**
- `/v1/LuaApiCaller?qq=CurrentQQ&funcname=GetGroupList&timeout=10`
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|NextToken |int| 首次请求为空 第二次请求NextToken 请填值(群少的情况下可能会出现返回值里该值为空的情况) |
**返回参数说明**
|字段|类型|注释|
|:---- |:------- |-- -
|NextToken |int| token值用于下次请求 需留意 |
|TroopList |list| 元素为JSON数据 字段同搜索QQ群中的一样 |
------------
**获取群成员列表:**
**请求URL:**
- `/v1/LuaApiCaller?qq=CurrentQQ&funcname=GetGroupUserList&timeout=10 `
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|GroupUin |int| 群号 |
|LastUin |int| 首次请求 为空 第二次请求需填值 从第一次返回的数据中获得 返回json 中 LastUin==0 时说明拉取群成员列表完成 |
**返回参数说明:**
|字段|类型|注释|
|:---- |:------- |-- -
|Age |int| 未知值 |
|FaceId |int| 未知值 |
|Gender |int| 未知值 |
|GroupCard |string| 群昵称 |
|JoinGroupTime |int|加群时间 |
|MemberEmail |string| 猜测将QQ邮箱设置成为了主显帐号才会显示 |
|MemberUin |int| 群成员Q号 |
|NickName |string| |
|RankDes |int|未知值 |
|Remark |string| 备注 |
|SpeakTime |int| 最后一次发言时间 |
|Status |int| 在线状态 已知 10是在线 20隐身 |
|GroupAdmin |int| 是否群管理员 是为1 |
------------
**点赞**
**请求URL:**
- `/v1/LuaApiCaller?qq=CurrentQQ&funcname=QQZan&timeout=10 `
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|UserID |int| 点赞的Q号 |
**返回参数说明** </code></pre>
<p>{
"Ret": 0
}</p>
<pre><code>------------
**退出指定QQ**
**请求URL:**
- `/v1/LuaApiCaller?qq=CurrentQQ&funcname=LogOut&timeout=10`
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|Flag |bool| false 退出 |
**返回参数说明** </code></pre>
<p>true</p>
<pre><code>------------
**获取任意用户信息昵称**
**请求URL:**
- `/v1/LuaApiCaller?qq=CurrentQQ&funcname=GetUserInfo&timeout=10`
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|UserID |int| 查询的QQ |
|GroupID |int| 默认0 加不加都不会改变返回结果 |
**返回参数说明**
|字段|类型|注释|
|:---- |:------- |-- -
|bitmap |string| 未知值 |
|friendship |int| 成为好友时为1 |
|intimacyScore |int|未知值 |
|realname |string| 备注|
|qzone |int| 1 开通了QQ空间 0没有 |
|avatarUrl |string| 头像图片 |
|astro |int| 未知值 |
</code></pre>
<p>{
"code": 0,
"data": {
"bitmap": "<strong>**</strong>",
"commfrd": 1,
"friendship": 0,
"intimacyScore": 0,
"isFriend": 0,
"logolabel": "0",
"nickname": "123123",
"qzone": 0,
"realname": "",
"smartname": "",
"uin": 123456789
},
"default": 0,
"message": "获取成功",
"subcode": 0
}</p>
<pre><code>------------
**修改群名片**
**请求URL:**
- `/v1/LuaApiCaller?qq=CurrentQQ&funcname=ModifyGroupCard&timeout=10`
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|UserID |int| 修改的QQ号 |
|GroupID |int|群号 |
|NewNick |string| 新群名片 |
**返回参数说明**
|字段|类型|注释|
|:---- |:------- |-- -
|GroupID |int| 群号 |
|UserID |int| Q号|
</code></pre>
<p>{
"GroupID": 123465789,
"UserID": 123456789
}</p>
<pre><code>------------
**修改群头衔**
**请求URL:**
- `/v1/LuaApiCaller?qq=CurrentQQ&funcname=SetUniqueTitle&timeout=10`
**请求方式:**
- POST
|字段|类型|注释|
|:---- |:------- |-- -
|UserID |int| 修改的QQ号 |
|GroupID |int|群号 |
|NewTitle |string| 新头衔 |
**返回值**
</code></pre>
<p>{
"Ret": 0
}</p>
<pre><code>
------------</code></pre>