公共请求头
参数 | 值 | 说明 |
---|---|---|
LANGUAGE | zh-Hans | 语言,zh-Hans 中文;th 泰语,目前就这2种 |
TENANT-ID | 1560744557050159105 | 租户id |
Authorization | Bearer 5cd72edd-2864-4410-bbbd-e34e37d1012d | 凭证,登录返回的token_type + access_token |
统一返回对象
参数 | 说明 |
---|---|
code | 状态码 |
data | 返回的数据 |
msg | 提示信息 |
http状态码
参数 | 说明 |
---|---|
424 | token过期 |
登录
http://h5.348.im/auth/oauth/token?grant_type=password
请求方式post
请求头
参数 | 值 | 说明 |
---|---|---|
Content-Type | application/x-www-form-urlencoded | |
Authorization | Basic YXBwOmFwcA== | 身份凭证,登录和刷新token时传对app:app base64加密后的值;登录后每次调用接口都传登录返回的token |
参数
参数 | 值 | 说明 |
---|---|---|
username | ttt100 | 登录名 |
password | YRDq1JJa | 密码AES 加密,加密模式Mode.CFB ,加密keypigxpigxpigxpigx |
返回
{
"access_token": "5cd72edd-2864-4410-bbbd-e34e37d1012d",// token
"token_type": "Bearer",
"refresh_token": "9c1c18bb-4e49-4062-adee-e39db2f6d6d3",// token过期,拿这个去更换
"expires_in": 2591999,// 过期时间秒
"scope": "server",
"nick": "ttt100",// 昵称
"license": "made by pigx",
"uid": "12125",// uid 客户端大部分都是拿uid做操作
"user_id": "354160518631557",// user_id 只有在连接到mqtt用user_id,其他地方都是uid
"clientWid": "app20221121100042070887",// 连接mqtt传入的clientid
"active": true,
"avatar": "/avatar/image/PNeHTV_photo_2022-08-20_05-04-12.jpg",// 头像地址
"client_id": "app",
"username": "ttt100"// 用户名
}
刷新token
http://h5.348.im/auth/oauth/token?grant_type=refresh_token
请求方式,请求头和登录一样
参数 | 值 | 说明 |
---|---|---|
refresh_token | 9c1c18bb-4e49-4062-adee-e39db2f6d6d3 | 登录返回的refresh_token |
获取OSS的token
http://h5.348.im/im/oss/uploadTokenV1
请求方式get
返回
{
"code": 0,
"msg": null,
"data": {
"keyId": "STS.NUaXtbsFoB65rYjYU4E182RYJ",// accessKeyId
"keySecret": "2fbigFXAcoh4woDxVVEWoeJEFVPXRT4iTVzSpzNT7JvS",// accessKeySecret
"token": "CAIS5QF1q6Ft5B2yfSjIr5bUE87WnplO9fTecH/bvVVhSb4U3ZfyqDz2IH1PdXdqB+8esvwzmWBX7/8dlqp6T54doIZMwWoovPpt6gqET9frma7ctM4p6vCMHWyUFGSIvqv7aPn4S9XwY+qkb0u++AZ43br9c0fJPTXnS+rr76RqddMKRAK1QCNbDdNNXGtYpdQdKGHaOITGUHeooBKNXRcx5Fcj0Tkjt/rumJbN0HeE0g2qmt1yjp/qP52pY/NrOJpCSNqv1IR0DPGci38OsUYVrPsu0PEUpm6e4cv2BEJK88pixBQ+OnwNGoABAb7l0HgUVn7w17RVSDY1F1NgZhqgYtnvqs7qy5da8wSmejEk8+WUqdktUWq7oAiDNzRf3VeYGNxGoI6Mqhmh9YC0DBlk2UnmEcnVU8SmsHncotg7/YVUZT55dAnMXw/aYnoKzl6+IIGI+Ncn/SCV8Im1W40ZTMQsmG/Ri8msux4=",// securityToken
"expiration": "2022-11-21 13:10:13",// token过期时间
"type": "ali",// oss厂商
"endpoint": "oss-accelerate",
"bucketName": "348file",
"msgBasePath": "im/msg",
"avatarBasePath": "im/avatar",
"bucketUrl": "http://348file.oss-accelerate.aliyuncs.com",// 上传后图片访问的前缀
"endpointUrl": "https://oss-accelerate.aliyuncs.com"// endpoint
}
}
客户端直接传图片到阿里云,不经过后台,阿里云文档,sts模式
https://help.aliyun.com/document_detail/100624.html
文档地址
https://dev22.zk1006.com/doc.html
WEB网页地址
获取参数配置
{
"code": 0,
"msg": null,
"data": {
"register": {
"regType": "USERNAME",
"regInviteCodeMust": false,
"regNameMustPhoneNumber": false,
"regAvatarMust": false
},
"findPage": {
"findBtnShow": true,
"findPageMode": "DIRECT"
},
"wallet": {
"walletShow": true,
"rechargeShow": true,
"withholdShow": true
},
"scanItOpen": true,
"group": {
"groupInviteNotice": true,
"removeGroupNotice": false,
"quitGroupNotice": false,
"groupCardShow": true,
"quitGroupBtnShow": true,
"updateGroupNickOpen": true,
"groupMemberNumberShow": true,// 是否显示群人数
"groupQrcodeShow": true,
"retractTipsGroupFlag": true,
"groupForbiddenTimeFlag": false,
"groupReportFlag": true,// 是否显示群投诉按钮
"friendRemarkFlag": false,
"groupNoticeShow": true
},
"friend": {
"retractTipsFdFlag": false
},
"chatItem": {
"retractMaxTime": "180",// 撤回最大时间
"emojiShow": true,// 是否显示表情包按钮
"sendFileFlag": true,
"redPackShow": true,
"audioShow": true,
"videoShow": true,
"readShow": true// 是否显示已读
},
"ossPrefix": "https://348file.oss-accelerate.aliyuncs.com",// 图片前缀
"permissions": null
}
}
需要调的接口
逻辑
- 登录,返回clientId,user_id,token等等
- 获取IM服务连接节点列表(mqtt连接地址),当前节点连接失败,切换到另外一个节点连接
- 根据登录返回的数据,连接到mqtt
- 订阅地址
"/mask/pub/" + "user_id"
,既/mask/pub/1354160518631557
,qos
设置1
mqtt文档
https://www.emqx.io/docs/zh/v5.0/development/client.html
连接mqtt
参数 | 值 | 说明 |
---|---|---|
clientId | app20221121100042070887 | 登录返回的clientId |
username | 354160518631557|1560744557050159105 | user_id + “|” + TENANT-ID |
password | 5cd72edd-2864-4410-bbbd-e34e37d1012d | token |
qos设置成1
MQTT消息通知格式
通知类型 | 说明 | 操作类型 | 样例 |
---|---|---|---|
msg | 消息类通知 | - | {“type”:”info”,”body”:{“c”:”msg样例”,”chatLinkId”:”351636190757061”,”chatMode”:”PRIVATECHAT”,”ct”:”TEXT”,”pastTime”:1669020286426,”localMessageId”:”1669020286000-GOIg9Uhi”},”requestId”:”msg”,”cmd”:”/chat/sendMsg”,”reqType”:”DIRC”} |
operNtf | 操作类通知 | read(已读) forbidden(禁言) allForbidden(全员禁言) unAllForbidden(解除全员禁言) exitGroup(退群) kickGroup(踢出群) setGroupRole<设置群角色> disbandGroup(解散群) |
{“requestId”:”paramNtf”,”body”:{“data”:{“groupId”:”1523486547895638698”,”userId”:”1523486547895638698”},”chatLinkId”:”1563188859851235330”,”oper”:”exitGroup”}} |
sysNtf | 系统类通知 | ONLINE(上小线) PERMISSION(权限变更) CONFIG(APP配置) |
{“requestId”:”paramNtf”,”body”:{“data”:{“roleId”:”2”,”roleCode”:”GENERAL_USER”},”chatLinkId”:”1563188859851235330”,”oper”:”PERMISSION”}} |
paramNtf | 下发参数类通知 | friendInfo(好友信息变更) groupInfo(群组信息变更) groupUserInfo(群成员信息变更) |
“requestId”:”paramNtf”,”body”:{“chatLinkId”:1361818835755008,”data”:{“uid”:10622,”groupAvator”:”/avatar/image/2022/0810/23/1/user.png”,”groupId”:1361334723313664,”groupNick”:””,”remarkName”:””,”srcNick”:”wxz201”,”groupRole”:”MEMBER”},”oper”:”groupUserInfo”,”requestId”:”paramNtf”,”tenantId”:1,”userId”:1361818829774848}} |
mediaNtf | 音视频类通知 | call(呼叫) answer(接听) refuse(拒绝) hangupActive(主动挂断) hangupPassive(被动挂断) cancelActive(主动取消) cancelPassive(被动取消) busyline(忙线) |
PC版暂不支持 |