bilibili-api
bilibili-api copied to clipboard
关于VcAPI中“意义不明”的dynamic_num接口的意义
~~我为什么要闲的蛋疼去抓动态接口~~
综述:/dynamic_svr/v1/dynamic_svr/dynamic_num
接口是关于动态的一系列接口的整合体。
结合web版,目前抓到了这几个:
获取整个动态页
此时的query:
uid:用户uid
type:动态的类型,如下图所示
各动态栏目有各自固定的type
栏目 | type参数的值 |
---|---|
全部 | 268435455 |
追番 | 512 |
专栏 | 64 |
小视频 | 16 |
投稿视频 | 8 |
图片 | 2 |
返回的是一个如下的描述动态页面内容的json。
{
"code": 0,
"msg": "",
"message": "",
"data": {
"new_num": 0,
"exist_gap": 1,
"open_rcmd": 1,
"archive_up_num": 2,
"up_num": {
"archive_up_num": 2,
"bangumi_up_num": 1
},
"extra_flag": {
"great_dynamic": 1
},
"cards": [{
"desc": {
"uid": __userid,
"type": 2,
"rid": __some_rid,
"acl": 0,
"view": 1255,
"repost": 0,
"like": 27,
"is_liked": 0,
"dynamic_id": __some_dynamic_id,
"timestamp": __ts,
"pre_dy_id": 0,
"orig_dy_id": 0,
"orig_type": 0,
"user_profile": {
"info": {
"uid": uid,
"uname": "username",
"face": "some_face_uri"
},
"card": {
"official_verify": {
"type": 0,
"desc": "some_description"
}
},
"vip": {
"vipType": 2,
"vipDueDate": 1584892800000,
"dueRemark": "",
"accessStatus": 0,
"vipStatus": 1,
"vipStatusWarn": "",
"themeType": 0
},
"pendant": {
"pid": 0,
"name": "",
"image": "",
"expire": 0
},
"rank": "10000",
"sign": "some_sign",
"level_info": {
"current_level": 6,
"current_min": 0,
"current_exp": 0,
"next_exp": "0"
}
},
"stype": 0,
"r_type": 1,
"inner_id": 0,
"status": 1,
"dynamic_id_str": "str"
},
"card": "some card json",
"extend_json": "some extend json"
}...],
"attentions": {
"uids": [2...],
"bangumis": [{
"season_id": 687,
"type": 1
}...]
},
"_gt_": 0
}
}
获取增量
此时的query: uid:用户uid type:动态类型,跟随栏目的下列选择有固定的值 rsp_type:1 意义应该是指定response的类型为只返回动态更新增量 [可空] current_dynamic_id:当前的最新动态id [可空] update_num_dy_id:获取这个动态id后的动态。
后两个参数一般置为一样同时传递。 返回参考:
{
"code": 0,
"msg": "",
"message": "",
"data": {
"new_num": 0,
"update_num": 1,
"_gt_": 0
}
}
相对于前一个response类型,data中少了cards和attentions。
关于图一中的“热门”动态
调用的是同目录下的recommend
接口,参数接受uid和page,返回response结构略有不同。
前排挤挤(划掉)
最近在想着怎么把 Retrofit 给换掉, 接口的事情过段时间再看看.