# 游戏接入视频号直播任务指引
[注] 当前接口只支持微信区用户携带票据请求,暂不支持QQ区!
接口:https://game.weixin.qq.com/cgi-bin/gameliveapi/gettaskdetailforgame
外网: game.weixin.qq.com
内网L5
正式环境:64028801:65536
测试环境: 64028801:131072
请求/回包均为json,建议直接走正式环境测试,无需配置host
接口有access_token鉴权,access_token为微信登陆态
curl "https://game.weixin.qq.com/cgi-bin/gameliveapi/gettaskdetailforgame?access_token=51_MLJ3r4CmcrHc5ill2OS46Ns-ZzDfzbK1PPCjU3r1eg2--qSDcmrzVWbJDOqkHJej_jgn6cvtMWSqxpI5VcblfVAFVILZPWNSC6_dTBtMRHk" -H 'Content-Type:application/json' -d '{"appid":"wx76fc280041c16519", "task_auth_list":[{"task_id":"test","task_key":"test"}]}'
task_id和task_key由微信运营分配
接口支持批量传task_id拉取任务列表详情,如同时有多个任务,请务必一次性传过来task_auth_list,不要分批请求!
enum TaskCondtionType {
// 观众指标:2、6、7;主播指标:1、2、3、4、5
// 对于主播来说,观时就是指“该直播被所有观众观看的总时长”;直播时长是“该场直播的总持续时间”。
TaskConditionTypeUV = 1; // uv
TaskConditionTypeWatchTime = 2; // 观时,主播和观众共用
TaskConditionTypeRewardValue = 3; // 打赏
TaskConditionTypeIncreaseFansNum = 4; // 粉丝增加数量
TaskConditionTypeLiveDuration = 5; // 直播时长
TaskConditionTypeLikeCount = 6; // 点赞次数, for观众
TaskConditionTypeShareCount = 7; // 分享次数, for观众
}
message TaskAuth {
optional string task_id = 1; // 确认任务内容后联系@v_ynyaoliao配置并告知task_id&task_key
optional string task_key = 2;
}
enum GeneralTaskType {
GeneralTaskTypeAnchor = 0; // 主播任务
GeneralTaskTypeAudience = 1; // 观众任务
}
message GetTaskDetailForGameRequest {
optional string appid = 1; // 游戏appid
repeated TaskAuth task_auth_list = 2; // 获取的任务列表
optional string user_id = 3; // 用户身份信息,ex. openid、游戏侧id等,建议传,便于排查问题
optional uint32 general_task_type = 4; // 观众任务or主播任务 enum GeneralTaskType
}
message TaskConditionList {
repeated TaskCondition condition_list = 1; // 条件列表
optional uint32 task_relation = 2; // 1与/2或
}
message TaskCondition {
optional string condition_desc = 1; // 任务描述
optional uint64 value = 2; // 任务进度(管理端配置允许返回才返回)
optional uint64 target_value = 3; // 条件目标值
optional bool is_satisfied = 4; // 是否满足条件
optional uint32 condition_type = 5; // TaskCondtionType
optional uint32 period_time = 6; // 周期时间(秒),0代表统计当前任务起止时间内的历史所有数据
optional string condition_id = 7; // 条件id
}
message TaskDetail {
optional string task_id = 1;
optional string task_desc = 2;
optional TaskConditionList task_condition_list = 3;
optional bool is_satisfied = 4; // 是否满足条件
}
message GetTaskDetailForGameResponse {
required int32 errcode = 1;
optional string errmsg = 2;
optional OkResult data = 3;
message OkResult {
repeated TaskDetail task_detail_list = 1;
}
}
json示例
{
"task_detail_list": [
{
"task_id": "65",
"task_desc": "斗地主十月主播招募活动任务1、2 测试",
"task_condition_list": {
"condition_list": [
{
"target_value": 1, // 目标值
"is_satisfied": true, // 是否满足条件
"condition_type": 1, // uv 条件类型 见 TaskCondtionType
"period_time": 86400, // 任务周期
"condition_id": "330", // 条件id
"value":1 // 当前进度
},
{
"target_value": "1",
"is_satisfied": true,
"condition_type": 5,
"period_time": 86400,
"condition_id": "331"
}
],
"task_relation": 1 // 1与/2或
},
"is_satisfied": true
}
]
}
# 常见错误码说明
错误码 | 说明 | 解决方案 |
---|---|---|
42001、40001 | 登录态过期 | access_token过期,申请新的access_token来访问接口。 |
-10129018 | appid错误,例如为空或含有空格等 | 检查appid传参是否正确。 |
-10129019 | task_id不存在 | 1.先看请求是否有携带general_task_type,如果没有,需要带上来标识观众任务/主播任务。2.查看task_id是否和提供的配置相同,如果相同,联系@v_ynyaoliao检查提供的配置是否正确。 |
-10129020 | task_id存在但task_key错误 | 和上面错误码-10129019类似。 |
-10098108 | 请求携带的access_token对应的游戏和请求中的appid游戏不一致 | 不允许游戏A请求游戏B的主播任务列表。请检查access_token和appid是否均为本游戏的。 |
# 常见异常情况
异常情况 | 说明 | 解决方案 |
---|---|---|
用户反馈完成任务但状态仍为未完成 | 两次授权,一次微信授权,一次微信视频号授权,如果两次授权的微信账号不同,就会出现开播正常但是任务查询未完成的问题。 | 微信授权和视频号授权对应的微信账号应该一致,如果有用户反馈,可以先联系用户确认。 |
接口拉取不到is_satisfied字段 | 微信侧管理端配置某条任务时,配置了多个子任务但并未配置子任务的逻辑关系(与/或),就会出现这种情况,本质是任务配置错误。 | 提供任务task_id,联系@v_ynyaoliao检查管理端任务配置情况。 |