From 396eb24d2b3199ca143532f567e90803c060f0e5 Mon Sep 17 00:00:00 2001 From: SocialSisterYi <45892418+SocialSisterYi@users.noreply.github.com> Date: Tue, 17 Mar 2020 11:05:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BE=8B=E8=A1=8C=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- README.md | 5 +- live/info_stream.md | 169 -------- login/login_info.md | 2 +- user/relation.md | 937 ++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 942 insertions(+), 173 deletions(-) delete mode 100644 live/info_stream.md create mode 100644 user/relation.md diff --git a/.gitignore b/.gitignore index 05b3710..c03ebc0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ -user/relation.md user/space.md login/password&SMS.md B站API.txt login/msg.md +live/info_flow.md diff --git a/README.md b/README.md index 11aa523..25f5739 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ - [用户](https://github.com/SocialSisterYi/bilibili-API-collect/tree/master/user) - [基本信息](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/user/info.md)√ - [状态数](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/user/status_number.md)√ - - 关系 + - [关系](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/user/relation.md)√ - 个人空间 - [视频](https://github.com/SocialSisterYi/bilibili-API-collect/tree/master/video) - 视频分区代码 @@ -66,8 +66,9 @@ - 收藏夹 - 课程 - 直播 + - 直播间基本信息 - 直播视频流 - - 直播弹幕 + - 直播信息流 - B币钱包 - 漫画 - 轻视频 diff --git a/live/info_stream.md b/live/info_stream.md deleted file mode 100644 index d87a550..0000000 --- a/live/info_stream.md +++ /dev/null @@ -1,169 +0,0 @@ -# 直播间信息流 - - - -## 数据包格式 - -数据包为websocket,格式为头部数据+正文数据 - -操作流程: - -发送认证包->接收认证包回应->接收普通包&(每30秒发送心跳包->接收心跳回应) - -头部格式: - -| 偏移量 | 长度 | 类型 | 含义 | -| ------ | ---- | ------ | ------------------------------------------------------------ | -| 0 | 4 | uint32 | 封包总大小(头部大小+正文大小) | -| 4 | 2 | uint16 | 头部大小(一般为0x0010,16字节) | -| 6 | 2 | uint16 | 协议版本:
0普通包正文不使用压缩
1心跳及认证包正文不使用压缩
2普通包正文使用zlib压缩 | -| 8 | 4 | uint32 | 操作码(封包类型) | -| 12 | 4 | uint32 | sequence,可以取常数1 | - -操作码: - -| 代码 | 含义 | -| ---- | -------------------- | -| 2 | 心跳包 | -| 3 | 心跳包回复(人气值) | -| 5 | 普通包(命令) | -| 7 | 认证包 | -| 8 | 认证包回复 | - -### 认证包 - -方式:(上行) - -连接成功后5秒内发送,否则强制断开连接 - -正文: - -json格式 - -| 字段 | 类型 | 内容 | 备注 | -| --------- | ---- | ------------ | -------------- | -| uid | num | 用户UID | 不可为0 | -| roomid | num | 加入房间的ID | | -| protover | num | 协议版本 | 现在是2 | -| platform | str | 平台标识 | 可为"web" | -| clientver | str | 客户端版本 | 现在是"1.10.3" | -| type | num | 必须为2 | | -| key | str | 认证秘钥 | | - -示例: - -``` -00000000 00 00 00 f0 00 10 00 01 00 00 00 07 00 00 00 01 |................| -00000010 7b 22 75 69 64 22 3a 32 39 33 37 39 33 34 33 35 |{"uid":293793435| -00000020 2c 22 72 6f 6f 6d 69 64 22 3a 32 31 36 38 36 32 |,"roomid":216862| -00000030 33 37 2c 22 70 72 6f 74 6f 76 65 72 22 3a 32 2c |37,"protover":2,| -00000040 22 70 6c 61 74 66 6f 72 6d 22 3a 22 77 65 62 22 |"platform":"web"| -00000050 2c 22 63 6c 69 65 6e 74 76 65 72 22 3a 22 31 2e |,"clientver":"1.| -00000060 31 30 2e 33 22 2c 22 74 79 70 65 22 3a 32 2c 22 |10.3","type":2,"| -00000070 6b 65 79 22 3a 22 43 6f 4b 68 5f 61 49 46 42 6c |key":"CoKh_aIFBl| -00000080 51 32 4c 57 77 64 79 4e 43 6b 2d 69 5f 42 76 72 |Q2LWwdyNCk-i_Bvr| -00000090 64 72 72 55 4d 32 78 57 6c 74 62 35 77 6b 54 50 |drrUM2xWltb5wkTP| -000000a0 4e 72 44 55 49 2d 73 46 32 41 56 56 4f 44 78 43 |NrDUI-sF2AVVODxC| -000000b0 52 42 39 69 64 76 74 34 46 32 4d 50 31 45 4a 6c |RB9idvt4F2MP1EJl| -000000c0 4d 68 49 57 6b 31 5a 69 73 67 6e 32 67 67 66 6c |MhIWk1Zisgn2ggfl| -000000d0 68 72 65 6e 4f 4b 65 39 7a 56 65 6d 78 35 7a 5f |hrenOKe9zVemx5z_| -000000e0 5a 4d 43 61 55 77 4c 31 65 70 6d 7a 5a 53 22 7d |ZMCaUwL1epmzZS"}| -``` - - - -### 认证包回复 - -方式:(下行) - -在认证包发送成功后就会收到 - -json格式 - -| 字段 | 类型 | 内容 | 备注 | -| ---- | ---- | ------ | --------- | -| code | num | 返回值 | 0认证成功 | - -示例: - -``` -00000000 00 00 00 1a 00 10 00 01 00 00 00 08 00 00 00 01 |................| -00000010 7b 22 63 6f 64 65 22 3a 30 7d |{"code":0}| -``` - - - -### 心跳包 - -方式:(上行) - -30秒左右发送一次,否则60秒后会被强制断开连接 - -正文: - -特定字符 - -[object Object] - -示例: - -``` -00000000 00 00 00 1f 00 10 00 01 00 00 00 02 00 00 00 01 |................| -00000010 5b 6f 62 6a 65 63 74 20 4f 62 6a 65 63 74 5d |[object Object]| -``` - -### 心跳回应(人气值) - -方式:(下行) - -在心跳包发送成功后就会收到 - -正文: - -uint32整数,代表房间当前的人气值 - -示例: - -``` -00000000 00 00 00 14 00 10 00 01 00 00 00 03 00 00 00 01 |................| -00000010 00 00 14 83 |....| -``` - -可见房间内人气值为5251人 - -### 普通包 - -方式:(下行) - -#### 弹幕 - - - -#### 送礼 - - - -#### 欢迎加入房间 - - - -#### 欢迎房管加入房间 - - - -#### 系统消息 - - - -#### 主播准备中 - - - -#### 直播开始 - - - -#### 直播状态更新 - - - diff --git a/login/login_info.md b/login/login_info.md index 77d1193..dce9755 100644 --- a/login/login_info.md +++ b/login/login_info.md @@ -152,7 +152,7 @@ http://api.bilibili.com/x/web-interface/nav -## 登录用户信息2(仅部分并带有转义) +## 登录用户信息2(仅部分 带有转义) 需要登录(SESSDATA) diff --git a/user/relation.md b/user/relation.md new file mode 100644 index 0000000..872f813 --- /dev/null +++ b/user/relation.md @@ -0,0 +1,937 @@ +# 用户关系相关 + +## 查询用户粉丝明细 + +登录(SESSDATA)可看自己全部 + +api.bilibili.com/x/relation/followers + +*方式:GET* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | ----------- | ------ | --------------------------- | +| vmid | 目标用户UID | 必要 | | +| ps | 每页项数 | 非必要 | 默认为50 | +| pn | 页码 | 非必要 | 默认为1 非自己只能查看前5页 | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------------------------- | +| code | num | 返回值 | 0成功
-400请求错误
22007访问超过5页 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ------------ | +| list | array | 明细列表 | | +| re_version | num | ??? | 作用尚不明确 | +| total | num | 粉丝总数 | | + +list 数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----- | ---------------- | +| 0 | obj | 粉丝1 | | +| n | obj | 粉丝n | 按照关注顺序排列 | +| …… | obj | …… | …… | + +数组 list 中的所有项 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ------------ | --------------------------------- | +| mid | num | 用户UID | | +| attribute | num | 关注属性 | 0未关注
2已关注
6已互粉 | +| mtime | num | 成为粉丝时间 | 时间戳 互关后刷新 | +| tag | null | | 作用尚不明确 | +| special | num | 0 | 作用尚不明确 | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | jpg gif | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +official_verify 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | --------------- | +| type | num | 用户认证类型 | -1无
1认证 | +| desc | str | 用户认证信息 | 无为空 | + +vip 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------- | +| vipType | num | 大会员类型 | 0无
1月会员
2年会员 | +| vipDueDate | num | 会员到期时间 | 毫秒 时间戳 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0无
1有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +label 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +示例: + +http://api.bilibili.com/x/relation/followers?vmid=293793435&ps=2&pn=1 + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [{ + "mid": 387195656, + "attribute": 0, + "mtime": 1583839793, + "tag": null, + "special": 0, + "uname": "L_E_M_O_H_E", + "face": "http://i1.hdslb.com/bfs/face/8ec537db75eeb292faa8dc85a9ff8aba83148c86.jpg", + "sign": "暂时断更。。Back later", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }, { + "mid": 175989424, + "attribute": 0, + "mtime": 1583822019, + "tag": null, + "special": 0, + "uname": "哥本哈根iii", + "face": "http://i1.hdslb.com/bfs/face/e53c0fe9315176d48bd294b1f381f0da70131cd7.jpg", + "sign": "", + "official_verify": { + "type": -1, + "desc": "" + }, + "vip": { + "vipType": 0, + "vipDueDate": 0, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }], + "re_version": 3857745402, + "total": 365 + } +} +``` + +以每页2项的方式获取了UID为293793435的用户的第1页的粉丝明细 + + + +## 查询用户关注明细 + +登录(SESSDATA)可看自己全部 + +api.bilibili.com/x/relation/followings + +*方式:GET* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | ----------- | ------ | --------------------------- | +| vmid | 目标用户UID | 必要 | | +| ps | 每页项数 | 非必要 | 默认为50 | +| pn | 页码 | 非必要 | 默认为1 非自己只能查看前5页 | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | --------------------------------------------- | +| code | num | 返回值 | 0成功
-400请求错误
22007访问超过5页 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---------- | ----- | -------- | ------------ | +| list | array | 明细列表 | | +| re_version | num | ??? | 作用尚不明确 | +| total | num | 关注总数 | | + +list 数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----- | ---------------- | +| 0 | obj | 粉丝1 | | +| n | obj | 粉丝n | 按照关注顺序排列 | +| …… | obj | …… | …… | + +数组 list 中的所有项 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---------------------------------------- | ------------ | --------------------------------- | +| mid | num | 用户UID | | +| attribute | num | 关注属性 | 0未关注
2已关注
6已互粉 | +| mtime | num | 关注对方时间 | 时间戳 互关后刷新 | +| tag | null默认分组
arrary存在至少一个分组 | 分组ID | 作用尚不明确 | +| special | num | 特别关注标志 | 0否
1是 | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | jpg gif | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +tag 数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------------- | ---- | +| 0 | num | 位于分组1的分组ID | | +| n | num | 位于分组(n+1)的分组ID | | +| …… | num | …… | …… | + +official_verify 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | --------------- | +| type | num | 用户认证类型 | -1无
0认证 | +| desc | str | 用户认证信息 | 无为空 | + +vip 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------- | +| vipType | num | 大会员类型 | 0无
1月会员
2年会员 | +| vipDueDate | num | 会员到期时间 | 毫秒 时间戳 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0无
1有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +label 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +示例: + +http://api.bilibili.com/x/relation/followings?vmid=293793435&ps=2&pn=1 + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "list": [{ + "mid": 14082, + "attribute": 2, + "mtime": 1584271945, + "tag": null, + "special": 0, + "uname": "山新", + "face": "http://i0.hdslb.com/bfs/face/74c82caee6d9eb623e56161ea8ed6d68afabfeae.jpg", + "sign": "都说了是天依爹地,不是妈咪。\r私信有点多回复不过来~商业合作啥的请移步Weibo私信@山新 哦哦哦~", + "official_verify": { + "type": 0, + "desc": "配音演员、声优。洛天依声源提供者。" + }, + "vip": { + "vipType": 2, + "vipDueDate": 1601654400000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }, { + "mid": 420831218, + "attribute": 2, + "mtime": 1584208169, + "tag": [207542], + "special": 0, + "uname": "支付宝Alipay", + "face": "http://i2.hdslb.com/bfs/face/aaf18aeb2d9822e28a590bd8d878572ca8c59e04.jpg", + "sign": "阿支来了,关注点赞转发投币四连走起!", + "official_verify": { + "type": 1, + "desc": "支付宝官方账号" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1585065600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }], + "re_version": 3228575555, + "total": 699 + } +} +``` + +以每页2项的方式获取了UID为293793435的用户的第1页的关注明细 + + + +## 操作用户关系(关注/取关 等) + +需要登录(SESSDATA) + +api.bilibili.com/x/relation/modify + +*方式:POST* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | ------------------- | ------ | ---- | +| fid | 目标用户UID | 必要 | | +| act | 操作代码 | 必要 | | +| re_src | 必须为11 | 必要 | | +| csrf | cookies中的bili_jct | 必要 | | + +操作代码: + +| 代码 | 含义 | +| ---- | ------------ | +| 1 | 关注 | +| 2 | 取关 | +| 3 | 悄悄关注 | +| 4 | 取消悄悄关注 | +| 5 | 拉黑 | +| 6 | 取消拉黑 | +| 7 | 踢出粉丝 | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0成功
-111csrf校验失败
-101账号未登录
-400请求错误
22003用户位于黑名单 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | + +示例: + +curl -b SESSDATA=xxx -d "fid=14082&act=1&re_src=11&csrf=xxx" http://api.bilibili.com/x/relation/modify + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +成功关注了UID为14082的用户 + + + +## 查询用户与自己关系1 (仅查关注) + + 需要登录(SESSDATA) + +api.bilibili.com/x/relation + +*方式:GET* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | ----------- | ------ | ---- | +| fid | 目标用户UID | 必要 | | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------- | +| code | num | 返回值 | 0成功
-101账号未登录
-400请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---------------------------------------- | ------------ | --------------------------------- | +| mid | num | 目标用户UID | | +| attribute | num | 关注属性 | 0未关注
2已关注
6已互粉 | +| mtime | num | 关注对方时间 | 时间戳 未关注为0 | +| tag | null默认分组
arrary存在至少一个分组 | 分组ID | | +| special | num | 特别关注标志 | 0否
1是 | + +tag 数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------------- | ---- | +| 0 | num | 位于分组1的分组ID | | +| n | num | 位于分组(n+1)的分组ID | | +| …… | num | …… | …… | + +示例: + +http://api.bilibili.com/x/relation?fid=258150656 + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "mid": 258150656, + "attribute": 2, + "mtime": 1540659101, + "tag": [-10], + "special": 1 + } +} +``` + +可得对于UID为258150656的用户,在2018/10/28 0:51:41时关注,且设为特别关注,并位于ID为-10分组中 + + + +## 查询用户与自己关系2(互相) + +需要登录(SESSDATA) + +api.bilibili.com/x/space/acc/relation + +*方式:GET* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | ----------- | ------ | ---- | +| mid | 目标用户UID | 必要 | | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------- | +| code | num | 返回值 | 0成功
-101账号未登录
-400请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----------- | ---- | ------------------------ | ---- | +| relation | obj | 目标用户对于本用户的属性 | | +| be_relation | obj | 本用户对于目标用户的属性 | | + +relation 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---------------------------------------- | ------------ | -------------- | +| mid | num | 对方用户UID | | +| attribute | num | | | +| mtime | num | 关注对方时间 | 互关后刷新时间 | +| tag | null默认分组
arrary存在至少一个分组 | | | +| special | num | | | + +be_relation 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------- | ---------------------------------------- | ------------ | -------------- | +| mid | num | | | +| attribute | num | | | +| mtime | num | 成为粉丝时间 | 互关后刷新时间 | +| tag | null默认分组
arrary存在至少一个分组 | | | +| special | num | | | + +tag 数组(relation中与be_relation中): + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ----------------------- | ---- | +| 0 | num | 位于分组1的分组ID | | +| n | num | 位于分组(n+1)的分组ID | | +| …… | num | …… | …… | + +示例: + +http://api.bilibili.com/x/space/acc/relation?mid=15858903 + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "relation": { + "mid": 15858903, + "attribute": 6, + "mtime": 1548311059, + "tag": [-10, 194110], + "special": 1, + "is_followed": false + }, + "be_relation": { + "mid": 293793435, + "attribute": 6, + "mtime": 1548311059, + "tag": [56502, -10], + "special": 1, + "is_followed": false + } + } +} +``` + +可得对于UID为15858903的用户,在2019/1/24 14:24:19时关注了对方,且互相关注,自己将对方特别关注,并同时位于ID为-10和194110的分组中,对方也将自己设为特别关注,并同时位于-10和56502的分组中(虽然我看不到) + + + +## 关注分组相关 + +### 查询关注分组列表 + +需要登录(SESSDATA) + +api.bilibili.com/x/relation/tags + +*方式:GET* + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------------------- | +| code | num | 返回值 | 0成功
-101账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | arrary | 分组列表 | | + +data 数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | ---- | +| 0 | obj | 特别关注分组 | | +| 1 | obj | 默认分组 | | +| n | obj | 其他分组 | | +| …… | num | …… | …… | + +数组 data 中的所有项 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | ---------- | ---------------------------------- | +| tagid | num | 分组ID | 特别关注恒为-10
默认分组恒为0 | +| name | str | 分组名称 | | +| count | num | 分组成员数 | | + +示例: + +http://api.bilibili.com/x/relation/tags + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [{ + "tagid": -10, + "name": "特别关注", + "count": 16 + }, { + "tagid": 0, + "name": "默认分组", + "count": 536 + },{ + "tagid": 194111, + "name": "我的同学", + "count": 16 + }, + ………… + ] +} +``` + +查询到了一些分组的名字以及ID + + + +### 查询关注分组明细 + +需要登录(SESSDATA) + +api.bilibili.com/x/relation/tag + +*方式:GET* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | -------- | ------ | ---------------------------------- | +| tagid | 分组ID | 必要 | 特别关注恒为-10
默认分组恒为0 | +| ps | 每页项数 | 非必要 | 默认为50 | +| pn | 页数 | 非必要 | 默认为1 | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ------ | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0成功
-101账号未登录
-400请求错误
22104该分组不存在
-101账号未登录 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | arrary | 成员列表 | | + +data 数组: + +| 项 | 类型 | 内容 | 备注 | +| ---- | ---- | --------- | ---------------- | +| 0 | obj | 成员信息1 | | +| n | obj | 成员信息n | 按照添加顺序排序 | +| …… | num | …… | …… | + +数组 data 中的所有项 对象: + +| 字段 | 类型 | 内容 | 备注 | +| --------------- | ---- | ----------- | ------- | +| mid | num | 用户UID | | +| uname | str | 用户昵称 | | +| face | str | 用户头像url | jpg gif | +| sign | str | 用户签名 | | +| official_verify | obj | 认证信息 | | +| vip | obj | 会员信息 | | + +official_verify 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ------------ | --------------- | +| type | num | 用户认证类型 | -1无
1认证 | +| desc | str | 用户认证信息 | 无为空 | + +vip 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------- | ---- | ------------ | ----------------------------- | +| vipType | num | 大会员类型 | 0无
1月会员
2年会员 | +| vipDueDate | num | 会员到期时间 | 毫秒 时间戳 | +| dueRemark | str | 空 | 作用尚不明确 | +| accessStatus | num | 0 | 作用尚不明确 | +| vipStatus | num | 大会员状态 | 0无
1有 | +| vipStatusWarn | str | 空 | 作用尚不明确 | +| themeType | num | 0 | 作用尚不明确 | +| label | obj | ??? | 作用尚不明确 | + +label 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ---- | ---- | ---- | ------------ | +| path | str | 空 | 作用尚不明确 | + +示例: + +http://api.bilibili.com/x/relation/tag?tagid=207542&ps=2&pn=1 + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": [{ + "mid": 420831218, + "uname": "支付宝Alipay", + "face": "http://i2.hdslb.com/bfs/face/aaf18aeb2d9822e28a590bd8d878572ca8c59e04.jpg", + "sign": "阿支来了,关注点赞转发投币四连走起!", + "official_verify": { + "type": 1, + "desc": "支付宝官方账号" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1585065600000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 1, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }, { + "mid": 125086406, + "uname": "MSI微星科技", + "face": "http://i1.hdslb.com/bfs/face/a844760e4e491677615b39399bc761e74c579bb4.jpg", + "sign": "你好,这里是微星显卡官方!专注显卡三十年,欢迎私信咨询或提问MSI", + "official_verify": { + "type": 1, + "desc": "微星科技官方账号" + }, + "vip": { + "vipType": 1, + "vipDueDate": 1540656000000, + "dueRemark": "", + "accessStatus": 0, + "vipStatus": 0, + "vipStatusWarn": "", + "themeType": 0, + "label": { + "path": "" + } + } + }] +} +``` + +以每页2项的方式获取了分组ID为207542分组的第1页的粉丝明细 + + + +### 查询目标用户所在的分组 + +需要登录(SESSDATA) + +api.bilibili.com/x/relation/tag/user + +*方式:GET* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | ----------- | ------ | ---- | +| fid | 目标用户UID | 必要 | | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------- | +| code | num | 返回值 | 0成功
-101账号未登录
-400请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ------------------- | ---- | --------- | ---- | +| {加入的分组ID 1} | str | 分组1名称 | | +| {加入的分组ID n} | str | 分组n名称 | | +| …… | str | …… | | + +示例: + +http://api.bilibili.com/x/relation/tag/user?fid=319214221 + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "-10": "特别关注", + "194111": "我的同学" + } +} +``` + +查询到了UID为319214221的用户同时存在的两个分组的ID和名称 + + + +### 创建关注分组 + +需要登录(SESSDATA) + +api.bilibili.com/x/relation/tag/create + +*方式:POST* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | ------------------- | ------ | ---------- | +| tag | 分组名 | 必要 | 最长16字符 | +| csrf | cookies中的bili_jct | 必要 | | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0成功
-111csrf校验失败
-101账号未登录
-400请求错误
22106该分组已经存在
22103分组名过长 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | +| data | obj | 信息本体 | | + +data 对象: + +| 字段 | 类型 | 内容 | 备注 | +| ----- | ---- | -------------- | ---- | +| tagid | num | 创建的分组的ID | | + +示例: + +curl -b SESSDATA=xxx -d "tag=vUP&csrf=xxx" http://api.bilibili.com/x/relation/tag/create + +```json +{ + "code": 0, + "message": "0", + "ttl": 1, + "data": { + "tagid": 216677 + } +} +``` + +成功创建了名为"vUP"的分组,ID为216677 + + + +### 重命名关注分组 + +需要登录(SESSDATA) + +api.bilibili.com/x/relation/tag/update + +*方式:POST* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | ------------------- | ------ | ---------- | +| tagid | 分组ID | 必要 | | +| name | 新名称 | 必要 | 最长16字符 | +| csrf | cookies中的bili_jct | 必要 | | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0成功
-111csrf校验失败
-101账号未登录
-400请求错误
22103分组名过长
22104该分组不存在 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | + +示例: + +curl -b SESSDATA=xxx -d "tagid=194112&name=%e8%86%9c%e6%b3%95%e5%b8%88&csrf=xxx" http://api.bilibili.com/x/relation/tag/update + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +成功把ID为194112的分组更名为"膜法师" + + + +### 删除关注分组 + +需要登录(SESSDATA) + +api.bilibili.com/x/relation/tag/del + +*方式:POST* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | ------------------- | ------ | ---- | +| tagid | 分组ID | 必要 | | +| csrf | cookies中的bili_jct | 必要 | | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0成功
-111csrf校验失败
-101账号未登录
-400请求错误 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | + +示例: + +curl -b SESSDATA=xxx -d "tagid=216699&csrf=xxx" http://api.bilibili.com/x/relation/tag/del + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +成功删除了分组ID为216699的分组 + + + +### 修改用户分组关系(添加/删除) + +需要登录(SESSDATA) + +api.bilibili.com/x/relation/tags/addUsers + +*方式:POST* + +参数: + +| 参数名 | 内容 | 必要性 | 备注 | +| ------ | ------------------- | ------ | ------------------------ | +| fids | 目标用户UID | 必要 | | +| tagids | 分组ID | 必要 | 每个ID见用","(%2C)间隔 | +| csrf | cookies中的bili_jct | 必要 | | + +**json回复:** + +| 字段 | 类型 | 内容 | 备注 | +| ------- | ---- | -------- | ------------------------------------------------------------ | +| code | num | 返回值 | 0成功
-111csrf校验失败
-101账号未登录
-400请求错误
22105未关注 | +| message | str | 错误信息 | 默认为0 | +| ttl | num | 1 | 作用尚不明确 | + +示例: + +curl -b SESSDATA=xxx -d "fids=205631797&tagids=-10%2C207542&csrf=xxx" http://api.bilibili.com/x/relation/tags/addUsers + +```json +{ + "code": 0, + "message": "0", + "ttl": 1 +} +``` + +成功把UID为205631797的用户同时添加到了分组ID为-10和207542的分组中 \ No newline at end of file