# 组队上车

# 应用场景

主播在直播间发起组队,粉丝在看播端通过申请后,可以直接进入到主播的游戏队伍中,无需加好友或者发送链接等其他操作.

主播侧,开启组队功能示意图

粉丝侧,发起组队申请示意图

# 核心步骤

  • # 主播创建游戏队伍

注意:平台在收到“创建队伍”的游戏事件时,需要保存主播和room_extra字段的映射关系。在粉丝加入队伍时需要回传该数据到livelink侧

  • # 粉丝加入游戏队伍

注意:平台需要在验票接口中返回上一步保存的room_extra,方便定位主播的游戏房间

  • # 游戏队伍更新事件

# 游戏队伍事件

基于通用数据接口,livelink会将主播游戏队伍的变更事件实时推送到平台侧,平台可以根据对应的事件,做对应的UI展示以及其他处理流程。结构如下:


{
    "gameCode":"", // 游戏code
    "reqType":"teamPlayGameDataReport", // 在本场景下固定为teamPlayGameDataReport
    "data":"{}" // 具体数据如下
}

// data数据结构
{
    "report_timestamp": 123123,  // 上报时间戳
    "room_owner_open_id": "1231231", // 房主openID
    "room_owner_nick_name": "xxx", // 房主用户昵称
    // 上报类型,取值如下:
    // 1 创建队伍,这时候粉丝可以申请上车了 
    // 2 队伍信息变更,有粉丝加入/退出队伍
    // 3 队伍销毁,主播解散了整个队伍,如果下次再开会触发类型1
    // 4 游戏开始,告知粉丝游戏正在进行中,可以等待下一局
    // 5 游戏结束,一局游戏结束,粉丝可以重新申请上车
    "report_type": 1, 
    "room_data": "xxxxxxx" // json序列化下述数据结构
}



// room_data数据结构
{
    // [关键字段] 游戏透传信息,主播创建游戏队伍(即report_type=1)时推送到平台,平台需要记录下来,在观众调用验票接口时回传,方便游戏侧定位主播的游戏房间
    "room_extra":"",
    // 当前房间全部成员列表,包含房主
    "member_list":[
        {
            // 用户openID
            "open_id":"abc123",
            // 游戏用户昵称
            "nick_name": "xxx",
        },
        {
            // 用户openID
            "open_id":"abc123",
            // 游戏用户昵称
            "nick_name": "xxx",
        }
    ],
    // 上一次更新房间信息到此次为止被主播强制踢出房间的成员用户id,用户主动退出的不记录在此
    "kicked_user_open_id_list":["userid123455"],
    // 游戏房间总容量
    "team_size":10,
    // 游戏模式
    "game_mode": "排位赛",
    // 游戏模式id
    "game_mode_id": "123",
    // 地图名称
    "map_name": "地图1",
    // 地图id
    "map_id": "12",
    // 区服限制
    "enable_region": ["wx", "qq"],
    // 最低段位
    "min_rank_level": "至尊星耀V",
    // 最高段位
    "max_rank_level": "最强王者",
    // 最低星级限制 除王者外暂未使用
    "min_rank_grade": "0",
    // 最高星级限制 除王者外暂未使用
    "max_rank_grade": "25",
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

# 平台需提供的接口

接口签名方式和数据接口保持一致

# 验证票据

在主播/粉丝通过schema拉起游戏,登录到游戏内之后,livelink会调用平台的该接口,验证用户的身份是否正确。平台可以在此处校验用户是否满足上车的条件,类似是否关注直播间、是否完成其他任务等。

请求:
{
    "gameCode": "xxxxx", // 对应的游戏代号
    "uid": "xxxxxx", // 绑定的平台用户id
    "ticket": "xxxx", // 通过schema拉起游戏时透传的平台票据,平台自定义
    "userType": 1 // 1主播2粉丝
}
响应:
{
    "ret":0, // 非零表示用户身份不正确
    "msg":"ok", // 错误原因
    "data":{
        // [关键字段] 接收到创建队伍的通知时,平台需要保存该字段,在粉丝验票的时候需要回传,方便游戏把粉丝拉进主播的队伍里
        "room_extra":"",
        // 票据有效期,单位为秒
        "expire_seconds":1209600 
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# livelink提供的接口

接口签名方式和数据接口保持一致

# 开启/关闭玩法

主播在开启/关闭组队上车功能时,平台可以调用该接口; 游戏侧收到主播关闭玩法的通知时,应主动断开后续的监听事件,避免资源浪费。

请求方式:
POST https://welive.qq.com/dataproxy/feature/setFeatureFlag

请求结构:
{
    "plat":"douyin", // 平台业务code
    "game":"yxzj", // 游戏业务code
    "uid":"xxxx", // 平台绑定的用户ID
    "feature":"yjkh", // 玩法标识,本场景固定为yjkh
    "op":1, //1开启 2关闭

}

响应结构:
{
    "ret":0,
    "tid":"",
    "msg":"ok"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 支持的游戏

  • 王者荣耀
  • 和平精英
  • 元梦之星
lastUpdate: 8/7/2025, 10:15:30 AM