PK状态查询
4.3.1、介绍
平台提供了一个主播PK状态查询的接口,方便开发者在小程序中实现主播的对局。
4.3.2、接口
4.3.2.1、查询主播PK信息接口
接口调用说明
http请求方式:GET
https://apiext.huya.com/pkgame/queryMultiPkInfo
接口鉴权
小程序API是为开发者提供的面向小程序应用场景的API,由开发者的小程序后台服务发起调用。小程序API的通信方式为HTTPS。
生成签名
按照统一鉴权说明生成对应的鉴权sToken(即JWT token)
注意:其中Payload需要做以下调整:
payload参数:
| 参数名称 | 类型 | 备注 |
|---|---|---|
| iat | number | token生成时间戳(秒) |
| exp | number | 过期时间戳(秒) |
| appId | string | 开发者appid 如何查找 |
| extUuid | string | 小程序id 如何查找 |
| profileId | string | 主播unionId 如何获取 |
| roomId | string | 主播房间号 如何获取 |
payload样例
{
"iat": 1555921691,
"exp": 1555928891,
"appId": "appId",
"extUuid": "extUuid",
"profileId": "unImSOHlQBsY",
"roomId": "1134"
}
发送请求
- 通过https方式发送请求
- 上面生成的签名通过设置http Header参数authorization进行传输
Header参数:
| 参数名称 | 类型 | 备注 |
|---|---|---|
| authorization | string | 请求的签名凭证 |
get参数
| 参数名称 | 类型 | 备注 |
|---|---|---|
| appId | string | 必填,开发者appId 如何查找 |
| extUuid | string | 必填,小程序id 如何查找 |
HTTP响应
| 参数名称 | 类型 | 备注 |
|---|---|---|
| code | int | 业务状态码 通用业务状态码说明 |
| msg | string | 响应描述 |
| response | string | json格式,响应数据 |
response数据说明
{
"onPk": true,
"pkStatus": 1,
"remainSecond": 1729,
"pkModeType":3,
"leftTeam":{
"memberInfos": [
{
"nickName": "sss",
"avatarUrl": "sdsdssds",
"unionId": "sdsdsdsds",
"roomId": 10022322
}
]
},
"rightTeam":{
"memberInfos": [
{
"nickName": "sss",
"avatarUrl": "sdsdssds",
"unionId": "sdsdsdsds",
"roomId": 10022322
}
]
},
}
通用业务状态码说明
| 参数名称 | 备注 |
|---|---|
| 0 | 成功 |
| 1 | 参数错误 |
| 2 | 调用失败 |
| 3 | 服务器异常 |
4.3.3、场景
4.3.3.1、主播PK中
- 主播PK中,由主播自行沟通,让PK双方打开对应的小程序
- 查询主播PK信息接口,当主播正在PK时,接口的返回值中response为:
{
"onPk": true, // true 正在PK中
"pkStatus": 1,
"remainSecond": 1729, // 平台PK剩余时间(秒)
"pkModeType":3,
"leftTeam":{ // 红队成员
"memberInfos": [
{
"nickName": "sss", // 成员昵称
"avatarUrl": "sdsdssds", // 成员头像
"unionId": "sdsdsdsds", // 成员unionId
"roomId": 10022322 // 成员房间号
}
]
},
"rightTeam":{ // 蓝队成员
"memberInfos": [
{
"nickName": "sss",
"avatarUrl": "sdsdssds",
"unionId": "sdsdsdsds",
"roomId": 10022322
}
]
}
}
4.3.3.2、主播不在PK中
- 主播不在PK中,查询主播PK信息接口,接口的返回值中response为:
{
"onPk": false, // false 不在PK中
"pkStatus": 0,
"remainSecond": 0, // 平台PK剩余时间(秒)
"pkModeType":0,
"leftTeam": null,
"rightTeam": null
}
- 该场景一般由小程序实现手动输入主播房间号,游戏内自行完成对局组建