bilibili-API-collect/live/live_user_task.md
2023-01-06 01:16:45 +08:00

325 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 直播APP电池任务
- [获取任务进度](#获取任务进度)
- [领取电池任务](#领取电池)
> 需要发送五条弹幕才能领取
> 部分用户没有该任务
## 获取任务进度
> https://api.live.bilibili.com/xlive/app-ucenter/v1/userTask/GetUserTaskProgress
_请求方式GET_
认证方式: APP
**url 参数:**
**json 回复:**
根对象:
|字段|类型|内容|备注|
|--|--|--|--|
|code|num|返回值|0成功<br/>-1002002参数异常<br/>-500服务器异常|
|message|str|错误信息|默认为 "0"|
|ttl|str|1||
|data|obj|信息本体||
`data`对象:
|字段|类型|内容|备注|
|--|--|--|--|
|is_surplus|num|任务状态<br/>-1:用户没有此任务<br/>1:任务进行中<br/>||
|status|num|状态:<br/>0:未完成<br/>1:进行中<br/>2:可领取<br/>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|状态:<br/>0:未完成<br/>2:可领取<br/>3:已领取||
|id|num|任务id||
`day_task`对象:
|字段|类型|内容|备注|
|--|--|--|--|
|status|num|状态:<br/>0:未完成<br/>1:进行中<br/>2:可领取<br/>3:已领取||
|progress|num|每日任务(发送弹幕)进度||
|target|num|每日任务(发送弹幕)数量||
<br/>
<details>
<summary>查看响应示例:</summary>
未开始
```json
{
"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
}
}
}
```
每日任务进行中
```json
{
"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
}
}
}
```
每日任务完成
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"is_surplus": 1,
"status": 2,
"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": 2,
"progress": 5,
"target": 5
}
}
}
```
</details>
## 领取电池
> 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参考这里](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/other/API_sign.md#%E5%B7%B2%E7%9F%A5%E7%9A%84appkey)|
|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<br/>0:每日任务<br/>1~3:每周任务id|
|sign|str|签名|将以上内容根据字典顺序键值对进行`md5签名` [签名顺序参考](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/other/API_sign.md)|
**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`<br/>若登录设备无`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|
<details>
<summary>x-bili-trace-id、fp_local、session_id字段建议用两个`md5`来拼接,如:</summary>
```java
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;
```
</details>
**json 回复:**
_需要Brotli解压_
根对象:
|字段|类型|内容|备注|
|--|--|--|--|
|code|num|返回值|0成功<br/>-1002002参数异常<br/>-500服务器异常 <br/>27000002:已领取过|
|message|str|错误信息|默认为 "0"|
|ttl|str|1||
|data|obj|信息本体||
`data`对象:
|字段|类型|内容|备注|
|--|--|--|--|
|num|num|领取电池数||
<details>
<summary>查看响应示例:</summary>
```json
{
"code": 0,
"message": "0",
"ttl": 1,
"data": {
"num": 1
}
}
```
```json
{
"code": 27000002,
"message": "领取失败,请重试",
"ttl": 1,
"data": {
"num": 0
}
}
```
</details>