diff --git a/README.md b/README.md index 53bbc2f..2ca9a08 100644 --- a/README.md +++ b/README.md @@ -191,7 +191,10 @@ PS:所有 rest api 均可使用 https,文档中为了统一写作`http`, - [ ] 基本信息 - [ ] B币充值 - [ ] 贝壳相关 -- [ ] 哔哩哔哩漫画 +- [ ] [哔哩哔哩漫画](manga) + - [x] [签到](manga/clockin.md) + - [x] [积分商城](manga/point_shop.md) + - [ ] 哔哩哔哩游戏 - [ ] 轻视频 - [ ] [终端网络查询](clientinfo) diff --git a/manga/ClockIn.md b/manga/ClockIn.md new file mode 100644 index 0000000..34ca545 --- /dev/null +++ b/manga/ClockIn.md @@ -0,0 +1,66 @@ +# 签到 + +> http://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**正文参数( application/x-www-form-urlencoded ):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| platform | str | 平台 | 必要 | android | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num / str | 返回值 | 0:成功
invalid_argument:今日已签到 | +| msg | str | 错误信息 | 成功:空
已签到:clockin clockin is duplicate | +| meta | obj | 错误信息 | 今日已签到时存在 | + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| data | str | 错误信息 | | + +**示例:** + +```bash +curl 'http://manga.bilibili.com/twirp/activity.v1.Activity/ClockIn' \ +-b 'SESSDATA=xxx' +``` + +
+签到成功: + + +```json +{ + "code": 0, + "msg": "", + "data": {} +} +``` + +
+ +
+今日已签到: + + +```json +{ + "code": "invalid_argument", + "msg": "clockin clockin is duplicate", + "meta": { + "argument": "clockin" + } +} +``` + +
\ No newline at end of file diff --git a/manga/point_shop.md b/manga/point_shop.md new file mode 100644 index 0000000..8ed50cb --- /dev/null +++ b/manga/point_shop.md @@ -0,0 +1,451 @@ +# 积分商城 + +- [获取当前持有点数](#获取当前持有点数) +- [获取兑换奖品列表](#获取兑换奖品列表) +- [兑换物品](#兑换物品) +- [获取兑换历史记录](#获取兑换历史记录) +- [获取玩法说明](#获取玩法说明) + +*积分商城由web页面提供功能,地址为:* + +> https://manga.bilibili.com/eden/credits-exchange.html + +## 获取当前持有点数 + +> http://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetUserPoint + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | | +| msg | str | 错误信息 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ------------ | +| point | str | 点数 | 不登录时为0 | + +**示例:** + +```bash +curl 'http://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetUserPoint' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "", + "data": { + "point": "66666" + } +} +``` + +
+ +## 获取兑换奖品列表 + +> http://manga.bilibili.com/twirp/pointshop.v1.Pointshop/ListProduct + +*请求方式:POST* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | | +| msg | str | 错误信息 | | +| data | array | 奖品列表 | | + +`data`数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---- | +| 0 | obj | 奖品1 | | +| n | obj | 奖品(n+1) | | +| …… | obj | …… | …… | + +`data`数组中的对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ------------ | +| id | num | 物品id | | +| type | num | 物品类型 | 0:商城相关
3:限免券
7:福利券 | +| title | str | 物品名 | | +| image | str | 显示的图像 | 福利券为空 | +| amount | num | 库存总量 | | +| cost | num | 兑换所需点数(原价) | | +| real_cost | num | 兑换所需点数(现价) | | +| remain_amount | num | 库存剩余数 | | +| comic_id | num | 相关漫画id | | +| limits | array | 限定使用范围(漫画) | 限免券所适用的漫画 | +| discount | num | (?) | 目前恒为0 | +| product_type | num | 物品类型 | 1:限免券、福利券
4:商城满99立减10元券、商城5元无门槛券
5:商城5魔晶 | +| pendant_url | str | (?) | | +| pendant_expire | num | (?) | 0:限免券、福利券
7:商城满99立减10元券、商城5元无门槛券、商城5魔晶 | +| exchange_limit | num | 兑换次数限制 | | +| address_deadline | str | (?) | | +| act_type | num | (?) | 目前恒为0 | +| has_exchanged | bool | 是否兑换过该物品 | | +| main_coupon_deadline | str | 兑换后使用截止时间 | | +| deadline | str | 兑换后使用截止时间 | | +| point | str | (?) | 目前恒为0 | + +**示例:** + +```bash +curl 'http://manga.bilibili.com/twirp/pointshop.v1.Pointshop/ListProduct' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "", + "data": [ + { + "id": 195, + "type": 7, + "title": "积分兑换", + "image": "", + "amount": 15999, + "cost": 200, + "real_cost": 100, + "remain_amount": 0, + "comic_id": 0, + "limits": [], + "discount": 0, + "product_type": 1, + "pendant_url": "", + "pendant_expire": 7, + "exchange_limit": 0, + "address_deadline": "0001-01-01T00:00:00Z", + "act_type": 0, + "has_exchanged": false, + "main_coupon_deadline": "0001-01-01T00:00:00Z", + "deadline": "", + "point": "0" + }, + { + "id": 1009, + "type": 0, + "title": "商城5魔晶", + "image": "", + "amount": 500, + "cost": 260, + "real_cost": 30, + "remain_amount": 0, + "comic_id": 0, + "limits": [], + "discount": 0, + "product_type": 5, + "pendant_url": "", + "pendant_expire": 0, + "exchange_limit": 1, + "address_deadline": "0001-01-01T00:00:00Z", + "act_type": 0, + "has_exchanged": false, + "main_coupon_deadline": "2022-03-22T23:59:59+08:00", + "deadline": "2022-03-22T23:59:59+08:00", + "point": "0" + }, + { + "id": 1008, + "type": 0, + "title": "商城满99立减10元券", + "image": "", + "amount": 400, + "cost": 2000, + "real_cost": 400, + "remain_amount": 390, + "comic_id": 0, + "limits": [], + "discount": 0, + "product_type": 4, + "pendant_url": "", + "pendant_expire": 0, + "exchange_limit": 1, + "address_deadline": "0001-01-01T00:00:00Z", + "act_type": 0, + "has_exchanged": false, + "main_coupon_deadline": "2022-03-22T23:59:59+08:00", + "deadline": "2022-03-22T23:59:59+08:00", + "point": "0" + }, + { + "id": 1007, + "type": 0, + "title": "商城5元无门槛券", + "image": "", + "amount": 200, + "cost": 1000, + "real_cost": 200, + "remain_amount": 134, + "comic_id": 0, + "limits": [], + "discount": 0, + "product_type": 4, + "pendant_url": "", + "pendant_expire": 0, + "exchange_limit": 1, + "address_deadline": "0001-01-01T00:00:00Z", + "act_type": 0, + "has_exchanged": false, + "main_coupon_deadline": "2022-03-22T23:59:59+08:00", + "deadline": "2022-03-22T23:59:59+08:00", + "point": "0" + }, + { + "id": 1536, + "type": 3, + "title": "白兔糖", + "image": "http://i0.hdslb.com/bfs/manga-static/c3369754789a77b5d0b15cc31c75538ac035b3aa.jpg", + "amount": 4000, + "cost": 100, + "real_cost": 75, + "remain_amount": 3991, + "comic_id": 27164, + "limits": [ + { + "type": 1, + "id": 27164, + "title": "白兔糖" + } + ], + "discount": 0, + "product_type": 1, + "pendant_url": "", + "pendant_expire": 7, + "exchange_limit": 0, + "address_deadline": "0001-01-01T00:00:00Z", + "act_type": 0, + "has_exchanged": false, + "main_coupon_deadline": "0001-01-01T00:00:00Z", + "deadline": "", + "point": "0" + } + ] +} +``` + +
+ + +## 兑换物品 + +> http://manga.bilibili.com/twirp/pointshop.v1.Pointshop/Exchange + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**正文参数( application/x-www-form-urlencoded 或 application/json):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| product_id | str | 物品id | 必要 | | +| product_num | num | 兑换个数 | 必要 | | +| point | num | 物品所需点数 | 必要 | 现价(real_cost) | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0:兑换成功
1:积分不足
2:库存不足
3:product point mismatch(point填写错误)
3:超过用户最大可兑换数量
4:现在抢票的人太多啦,再点一下有机会优先上车喔 ε=ε=(ノ≧∇≦)ノ | +| message | str | 错误信息 | | + +**示例:** + +```bash +curl 'http://manga.bilibili.com/twirp/pointshop.v1.Pointshop/Exchange' \ +--data-urlencode 'product_id=195' \ +--data-urlencode 'product_num=1' \ +--data-urlencode 'point=real_cost' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "" +} +``` + +
+ +## 获取兑换历史记录 + +> http://manga.bilibili.com/twirp/activity.v1.Activity/GetPrizeList + +*请求方式:POST* + +认证方式:Cookie(SESSDATA)/ APP + +**正文参数( application/x-www-form-urlencoded 或 application/json):** + +| 参数名 | 类型 | 内容 | 必要性 | 备注 | +| ---------- | ---- | ------------------------ | -------------- | ------------------------------------------------------------ | +| act_id | num | 固定值:90018 | 必要 | | + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | | +| msg | str | 错误信息 | | | +| data | obj | 信息本体 | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------ | ---- | -------- | ---- | +| prizes | obj | 兑换记录 | | +| addr | obj | (?) | | + +`data`中的`prizes`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------- | ---- | -------- | ------------ | +| user_prize_id | str | 兑换id? | | +| prize_id | num | 兑换的物品id | | +| ctime | str | 兑换时间 | | +| addr | null | (?) | | +| deadline | str | 过期时间 | | +| type | num | 类型 | 1:限免券、福利券
8:商城5魔晶 | +| name | str | 物品名 | | + +**示例:** + +```bash +curl 'http://manga.bilibili.com/twirp/activity.v1.Activity/GetPrizeList' \ +--data-urlencode 'act_id=90018' \ +-b 'SESSDATA=xxx' +``` + +
+查看响应示例: + +```json +{ + "code": 0, + "msg": "", + "data": { + "prizes": [ + { + "user_prize_id": "55117444", + "prize_id": 1009, + "ctime": "2022-03-21T12:22:53+08:00", + "addr": null, + "deadline": "0001-01-01T00:00:00Z", + "type": 8, + "name": "商城5魔晶" + }, + { + "user_prize_id": "2594073385420523088", + "prize_id": 1536, + "ctime": "2022-03-21T12:07:24+08:00", + "addr": null, + "deadline": "0001-01-01T00:00:00Z", + "type": 1, + "name": "白兔糖限免卡" + }, + { + "user_prize_id": "4899916394614914913", + "prize_id": 195, + "ctime": "2021-12-24T12:01:08+08:00", + "addr": null, + "deadline": "0001-01-01T00:00:00Z", + "type": 1, + "name": "积分兑换" + }, + { + "user_prize_id": "1152921504636496551", + "prize_id": 195, + "ctime": "2021-12-13T12:05:13+08:00", + "addr": null, + "deadline": "0001-01-01T00:00:00Z", + "type": 1, + "name": "积分兑换" + } + ], + "addr": { + "name": "", + "phone": "", + "address": "", + "id_card": "" + } + } +} +``` + +
+ +## 获取玩法说明 + +> http://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetExchangeRule + +*请求方式:POST* + +**json回复:** + +根对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| code | num | 返回值 | | +| msg | str | 错误信息 | | +| data | obj | 信息本体 | | + +`data`对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | -------- | ---- | +| rule | str | 玩法说明 | | + +**示例:** + +```bash +curl 'http://manga.bilibili.com/twirp/pointshop.v1.Pointshop/GetExchangeRule' +``` + +
+查看响应示例: + + +```json +{ + "code": 0, + "msg": "", + "data": { + "rule": "日常兑换说明:\n1、赛季积分达到一定数量可兑换积分商城内相应的商品;\n2、日常兑换奖品的刷新时间为每日中午12点,每天可兑换的奖品总数有限(具体可见商品页面展示),请尽快兑换。\n3、兑换的福利券&限免卡奖品有效期详见兑换框内显示或卡券包内详情说明哦,请及时在有效期内使用。\n4、赛季积分有效期为当前赛季时长(每期赛季时长详见福利中心页面倒计时显示),请及时在有效期内进行使用。\n5、赛季积分可在福利中心完成特定任务获取,具体详情可至福利中心查看(部分活动也可获取赛季积分,可随时关注活动信息哦)。" + } +} +``` + +
\ No newline at end of file