观众一键同玩能力
收藏
我的收藏更新记录
时间 | 更新内容 |
2024.9.8 | 创建文档 |
2024.9.27 | 修正错误码及其排查建议 |
2024.10.30 | 标注「获取直播信息」部分响应字段仅在观众一键同玩能力开放 |
2024.12.4 | 修正「嘉宾云启动玩法」、「嘉宾关闭玩法」room_id格式 |
能力介绍
开放平台观众一键同玩能力,可支持玩法接入以下能力:
- •支持玩法获取直播信息,获取当前进入游戏的用户 open_id、用户角色、当前直播间可支持的游戏场景等信息。
- •支持玩法查询直播间当前麦位信息、嘉宾宿主是否具备云启动条件等。
- •支持玩法指定嘉宾云启动玩法。
- •支持玩法指定嘉宾关闭玩法。
注意:嘉宾关闭玩法的来源,除了开放给开发者的 API,还包括主播退出玩法、嘉宾自行下麦、嘉宾被踢出麦。
- •(可选)支持玩法上报连麦对局内用户积分,同步展示在直播间麦位上。
接入时序
厂商接入观众一键同玩能力需要接入红色箭头 API。
接口明细
获取直播信息
接口说明
主播使用直播伴侣或移动端云启动玩法后,直播伴侣/移动端云启动会传入 token 到玩法中,当玩法获取 token 后,传递给玩法的服务端。玩法服务端通过该接口,使用 token 获取直播间信息。
使用限制
token 有效期为 30 分钟。小玩法 app_id 维度,限流配置为 10 次 /s。
基本信息
名称 | 描 述 |
HTTP URL | |
HTTP Method | POST |
请求头
名称 | 字段类型 | 是否必填 | 描述 |
content-type | String | 是 | 固定值"application/json" |
X-Token | String | 是 |
请求参数
- •Body
字段 | 数据类型 | 必填 | 说明 |
token | string | 是 | 获取到的 token |
请求示例
curl --location --request POST 'https://webcast.bytedance.com/api/webcastmate/info' \ --header 'X-Token: 080112184630394f5735585a344f74546645794b544b786f30413d3d' \ --header 'Content-Type: application/json' \ --data-raw '{ "token":"pJKr395h6O5x2ykBjgrBIxnuot8nn62djr70EocUFXtiN1s9VpsHHuEPdZYKHVJFzftyIOb8lj9i0lrLnUhQsK55pT8shfX98qGuUBO7PSKoIVRq6tWMRdsjPVw=" }'
响应参数
- •Body
字段 | 数据类型 | 说明 | ||
errcode | int | 请求错误码,0 表示成功,非 0 表示失败 | ||
errmsg | string | 非 0 错误码时,携带额外的错误提示信息 | ||
data | struct | 请求成功时的返回数据 | ||
| ack_cfg | [Array Item] | 预留信息,sdk 接入使用,开发者不用感知 | |
linker_info | struct | 连屏数据预留信息,开发者目前不用感知 | ||
info | struct | | ||
| room_id | int64 | 直播间房间 id | |
anchor_open_id | string | 主播 open_id | ||
avatar_url | string | 主播头像地址 | ||
nick_name | string | 主播昵称 | ||
available_game_scenes | [Array Item] | 数组中元素为 int64,当前直播间支持的游戏场景,枚举值如下: 1 观众一键同玩,当前直播间已经进入观众连麦、聊天室连麦模式,可支持观众一键同玩场景 本字段仅在开通观众一键同玩能力时返回 | ||
join_game_user_open_id | string | 当前加入游戏的用户 open_id 本字段仅在开通观众一键同玩能力时返回 | ||
join_game_user_role | int64 | 当前加入游戏的用户角色,枚举值:1 主播;2 观众 本字段仅在开通观众一键同玩能力时返回 |
注意:
本接口应用在较多能力接入过程中,注意部分字段仅在观众一键同玩能力中开放,即
available_game_scenes
等3个字段;在未开通观众一键同玩能力时,无法使用这三个字段。响应示例
正常响应示例
{ "data": { "ack_cfg": [ // 预留信息,sdk接入使用,开发者不用感知 ], "linker_info": { // 连屏数据预留信息,开发者目前不用感知 "linker_id": 0, "linker_status": 0, "master_status": 0 }, "info": { "room_id": 7214015683695250235, "anchor_open_id": "_000oJIu6APhomK7KIBGqSYm5XYPxCJB_xxx", "avatar_url": "https://p11.douyinpic.com/aweme/720x720/aweme-avatar/tos-cn-avt-0015_973c31e8055f78a41d3f7de3def9821d.jpeg?from=3067671334", "nick_name": "xxx", "join_game_scenes": 720575940380000262, "join_game_user_role": 1, "available_game_scenes":[ 1 ], } } }
异常响应示例
{ "data": { }, "errcode": 40001, "errmsg": "invalid params", "extra": { "now": 1717059693095 }, "status_code": 40001 }
错误码
错误码 | 错误信息 | 描述 |
-1 | 服务内部异常 | 服务内部异常 |
40001 | 参数有误 | 检查请求 body 、请求 header 参数是否缺漏、错误 |
40002 | 通常为小程序没有该项能力 | 需开通当前观众一键同玩能力 |
40007 | 调用频率过高 | 接口有频控限制,建议降低请求的并发量 |
40014 | 缺少必要的参数 | 检查请求 body 、请求 header 参数是否缺漏、错误 |
50036 | token 解析异常 | 检查生成 token 使用的参数、取得的 token 是否正常 |
50037 | x-token 和 token 解析到的 app_id 不一致 | 检查生成 x-token 使用的 app_id 和生成 token 使用的 app_id 是否相匹配 |
50038 | token 解析到的 room_id 对应房间不存在 | 检查生成 token 使用的参数、取得的 token 是否正常 |
50039 | token 已过期 | 重新生成 token |