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