bilibili-api icon indicating copy to clipboard operation
bilibili-api copied to clipboard

关于VcAPI中“意义不明”的dynamic_num接口的意义

Open AlaricGilbert opened this issue 5 years ago • 1 comments

~~我为什么要闲的蛋疼去抓动态接口~~ 综述:/dynamic_svr/v1/dynamic_svr/dynamic_num接口是关于动态的一系列接口的整合体。 结合web版,目前抓到了这几个:

获取整个动态页

此时的query: uid:用户uid type:动态的类型,如下图所示 image 各动态栏目有各自固定的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结构略有不同。

AlaricGilbert avatar Apr 29 '19 17:04 AlaricGilbert

前排挤挤(划掉)

最近在想着怎么把 Retrofit 给换掉, 接口的事情过段时间再看看.

czp3009 avatar Apr 30 '19 02:04 czp3009