7.6 KiB
7.6 KiB
直播APP电池任务
需要发送五条弹幕才能领取 部分用户没有该任务
获取任务进度
https://api.live.bilibili.com/xlive/app-ucenter/v1/userTask/GetUserTaskProgress
请求方式:GET
认证方式: APP
url 参数:
无
json 回复:
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 -1002002:参数异常 -500:服务器异常 |
| message | str | 错误信息 | 默认为 "0" |
| ttl | str | 1 | |
| data | obj | 信息本体 |
data对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| is_surplus | num | 任务状态 -1:用户没有此任务 1:任务进行中 |
|
| status | num | 状态: 0:未完成 1:进行中 2:可领取 3:已领取 |
|
| progress | num | 每日任务(发送弹幕)进度 | |
| target | num | 每日任务(发送弹幕)数量 | |
| wallet | obj | 钱包 | |
| linked_actions_progress | ? | 未知 | 有时候请求没有此字段 |
| week_task | obj | 每周任务 | 有可能为空 |
| week_total | num | 每周累计天数 | |
| week_group | num | 未知 | |
| day_task | obj | 每日任务 |
wallet对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| gold | num | 电池数 | 后两位为小数,如 100 = 1电池 |
| silver | num | 银瓜子数量 |
week_task对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| reward_num | num | 奖励电池数 | |
| minimal_day | num | 需要完成天数 | |
| status | num | 状态: 0:未完成 2:可领取 3:已领取 |
|
| id | num | 任务id |
day_task对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| status | num | 状态: 0:未完成 1:进行中 2:可领取 3:已领取 |
|
| progress | num | 每日任务(发送弹幕)进度 | |
| target | num | 每日任务(发送弹幕)数量 |
查看响应示例:
未开始
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"is_surplus": 1,
"status": 0,
"progress": 0,
"target": 5,
"wallet": {
"gold": 18600,
"silver": 49592
},
"linked_actions_progress": null,
"week_task": [
{
"reward_num": 1,
"minimal_day": 3,
"status": 3,
"id": 1
},
{
"reward_num": 2,
"minimal_day": 5,
"status": 0,
"id": 2
},
{
"reward_num": 3,
"minimal_day": 7,
"status": 0,
"id": 3
}
],
"week_total": 3,
"week_group": 1,
"day_task": {
"status": 0,
"progress": 0,
"target": 5
}
}
}
每日任务进行中
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"is_surplus": 1,
"status": 1,
"progress": 2,
"target": 5,
"wallet": {
"gold": 18600,
"silver": 49592
},
"week_task": [
{
"reward_num": 1,
"minimal_day": 3,
"status": 3,
"id": 1
},
{
"reward_num": 2,
"minimal_day": 5,
"status": 0,
"id": 2
},
{
"reward_num": 3,
"minimal_day": 7,
"status": 0,
"id": 3
}
],
"week_total": 3,
"week_group": 1,
"day_task": {
"status": 1,
"progress": 2,
"target": 5
}
}
}
每日任务完成
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"is_surplus": 1,
"status": 3,
"progress": 5,
"target": 5,
"wallet": {
"gold": 18700,
"silver": 49592
},
"week_task": [
{
"reward_num": 1,
"minimal_day": 3,
"status": 3,
"id": 1
},
{
"reward_num": 2,
"minimal_day": 5,
"status": 0,
"id": 2
},
{
"reward_num": 3,
"minimal_day": 7,
"status": 0,
"id": 3
}
],
"week_total": 4,
"week_group": 1,
"day_task": {
"status": 3,
"progress": 5,
"target": 5
}
}
}
领取电池
https://api.live.bilibili.com/xlive/app-ucenter/v1/userTask/UserTaskReceiveRewards
请求方式:POST
认证方式: APP
url 参数:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| access_key | str | APP登录Token | |
| actionKey | str | appkey | |
| appkey | str | 1d8b6e7d45233436 | APPKEY,参考这里 |
| build | str | 7120200 | APP build号 |
| c_locale | str | zh_CN | |
| channel | str | xiaomi_cn_tv.danmaku.bili_20210930 | 或其他APP渠道号 |
| device | str | android | |
| disable_rcmd | num | 0 | |
| mobi_app | str | android | |
| platform | str | android | |
| s_locale | str | zh_CN | |
| statistics | str | {"appId":1,"platform":3,"version":"7.12.0","abtest":""} | 需要URLEncoder |
| ts | num | 1672917355 | 时间戳,单位秒 |
| target_id | num | 1022 | 可任意直播房间号 |
| reward_index | str | 0 | 任务id 0:每日任务 1~3:每周任务id |
| sign | str | 签名 | 将以上内容根据字典顺序键值对进行md5签名 签名顺序参考 |
Header 参数:
| 字段 | 内容 | 备注 |
|---|---|---|
| APP-KEY | android64 | |
| Accept-Encoding | gzip, deflate, br | |
| Connection | keep-alive | |
| Content-Type | application/x-www-form-urlencoded; charset=utf-8 | |
| Host | api.live.bilibili.com | |
| User-Agent | Mozilla/5.0 BiliDroid/7.4.0 (bbcallen@gmail.com) os/android model/22061218C mobi_app/android build/7040300 channel/xiaomi_cn_tv.danmaku.bili_20210930 innerVer/7040310 osVer/12 network/2 | |
| bili-http-engine | cronet | |
| buvid | buvid3 | web端为操作登录接口时Cookie中的buvid3若登录设备无 buvid则留空 |
| env | prod | |
| fp_local | 992219737dd69e7d98864235335347c53476691d4482fc3e57a835e894751811 | 64位随机 |
| fp_remote | 992219737dd69e7d98864235335347c53476691d4482fc3e57a835e894751811 | 64位随机,同fp_local |
| session_id | 99221973 | fp_local头8个字符 |
| x-bili-aurora-eid | WFICRlE= | |
| x-bili-aurora-zone | 留空 | |
| x-bili-mid | 0 | 用户uid |
| x-bili-trace-id | 992219737dd69e7d98864235335347c5:3476691d4482fc3e:0:0 | 32随机:16随机:0:0 |
x-bili-trace-id、fp_local、session_id字段,建议用两个`md5`来拼接,如:
String md5_1 = getMD5(System.currentTimeMillis());
String md5_2 = getMD5(System.currentTimeMillis());
String trace_id = md5_1 + ":" + md5_2.substring(0, 16) + ":0:0";
String session_id = md5_1.substring(0, 8);
String fp_local = md5_1 + md5_2;
json 回复:
需要Brotli解压
根对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| code | num | 返回值 | 0:成功 -1002002:参数异常 -500:服务器异常 27000002:已领取过 |
| message | str | 错误信息 | 默认为 "0" |
| ttl | str | 1 | |
| data | obj | 信息本体 |
data对象:
| 字段 | 类型 | 内容 | 备注 |
|---|---|---|---|
| num | num | 领取电池数 |
查看响应示例:
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"num": 1
}
}
{
"code": 27000002,
"message": "领取失败,请重试",
"ttl": 1,
"data": {
"num": 0
}
}