虎牙开放平台文档

对局状态

前言

对接本文功能时请严格按照说明和时序图指引进行对接,对接方式不正确可能会导致礼物面板唤起失败
1、平台对局与业务对局需要一一对应,禁止开启一场平台对局后,启动多场业务对局。
2、业务对局开始前必要严格判断startBattle接口返回的状态码,为0才进入业务对局,其它情况则为开局失败,并对主播进行相应提示。

4.1.1、介绍

对局是指弹幕玩法真正的战斗开始到结束的过程,过程中能支持唤醒对应弹幕礼物,让观众能使用弹幕礼物参与到互动中来。
对局阶段:

  • 开始:弹幕玩法真正进入玩法对抗的开始节点(组队装备界面不算对局过程);
  • 心跳:玩法对抗过程中定时上报的心跳(注意心跳上报间隔为:2秒-3秒);
  • 结束:弹幕玩法对抗结束的节点(结算界面的展示不算对局过程);

4.1.2、接入流程

4.1.2.1、时序图

时序图

4.1.3、接口

4.1.3.1、 查询主播对局状态接口

接口调用说明

http请求方式:POST
https://apiext.huya.com/interactive/queryBattleState

get参数
参数名称类型备注
appIdstring必填,开发者appId 如何查找
extUuidstring必填,小程序id 如何查找
post参数,是用json格式提交
参数名称类型备注
roomIdint必填,主播房间号
HTTP响应
参数名称类型备注
codeint业务状态码 通用业务状态码说明
msgstring响应描述
responsestringjson格式,响应数据
response数据说明
{ "battling" : 1, // 0: 不在对战状态 1: 正在对战中 "extUuid" : "abcdefg" // 主播当前对战中的小程序uuid }

4.1.3.2、开始对局接口

接口调用说明

http请求方式:POST
https://apiext.huya.com/interactive/startBattle

注意:实现时必须严格判断,只有在状态码返回0的时候,业务才进入对局
get参数
参数名称类型备注
appIdstring必填,开发者appId 如何查找
extUuidstring必填,小程序id 如何查找
post参数,是用json格式提交
参数名称类型备注
battleIdstring必填,对局ID,每场对局唯一,最长64位
commandUuidstring选填,指令ID,在开发者中心配置后生成,对接互动指令面板时需传入
gameModestring选填,对局模式。业务自定义,标注本对局是什么类型的对局,比如:单人对局(single)、PK对局(1pk)等。 该字段会用于平台主播任务中区分不同对局类型
HTTP响应
参数名称类型备注
codeint业务状态码 通用业务状态码说明
msgstring响应描述

4.1.3.3、对局心跳接口

接口调用说明

http请求方式:POST
https://apiext.huya.com/interactive/battleHeartbeat

注意:上报心跳的间隔为2秒-3秒
get参数
参数名称类型备注
appIdstring必填,开发者appId 如何查找
extUuidstring必填,小程序id 如何查找
post参数,是用json格式提交
参数名称类型备注
battleIdstring必填,开局使用的对局ID
HTTP响应
参数名称类型备注
codeint业务状态码 通用业务状态码说明
msgstring响应描述

4.1.3.4、结束对局接口

接口调用说明

http请求方式:POST
https://apiext.huya.com/interactive/endBattle

注意:业务对局结束时调用
get参数
参数名称类型备注
appIdstring必填,开发者appId 如何查找
extUuidstring必填,小程序id 如何查找
post参数,是用json格式提交
参数名称类型备注
battleIdstring必填,开局使用的对局ID
HTTP响应
参数名称类型备注
statusint业务状态码 通用业务状态码说明
msgstring响应描述

4.1.4、通用业务状态码说明

参数名称备注
0成功
1参数错误
2调用失败
3服务器异常
4未登录
5没有权限
6操作对象不存在
7重复操作
4001已有其他进行中的对局
4002对局已结束

4.1.5、接口鉴权

小程序API是为开发者提供的面向小程序应用场景的API,由开发者的小程序后台服务发起调用。小程序API的通信方式为HTTPS。

4.1.5.1、域名

正式环境域名:https://apiext.huya.com

4.1.5.2、生成签名

按照统一鉴权说明生成对应的鉴权sToken(即JWT token)

注意:其中Payload需要做以下调整

payload参数:
参数名称类型备注
iatnumbertoken生成时间戳(秒)
expnumber过期时间戳(秒)
appIdstring开发者appid 如何查找
extUuidstring小程序id 如何查找
profileIdstring主播unionId 如何获取
roomIdstring主播房间号 如何获取
payload样例
{ "iat": 1555921691, "exp": 1555928891, "appId": "appId", "extUuid": "extUuid", "profileId": "unImSOHlQBsY", "roomId": "1134" }

4.1.5.3、发送请求

  • 通过https方式发送请求
  • 上面生成的签名通过设置http Header参数authorization进行传输
Header参数:
参数名称类型备注
authorizationstring请求的签名凭证