bilibili-API-collect/user/relation.md
2020-07-17 23:50:28 +08:00

38 KiB
Raw Blame History

用户关系相关

查询用户粉丝明细

http://api.bilibili.com/x/relation/followers

请求方式GET

登录(SESSDATA)可看自己全部

url参数

参数名 类型 内容 必要性 备注
vmid num 目标用户UID 必要
ps num 每页项数 非必要 默认为50
pn num 页码 非必要 默认为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 粉丝总数

data中的list数组:

类型 内容 备注
0 obj 粉丝1
n obj 粉丝n+1 按照关注顺序排列
…… obj …… ……

数组list中的对象:

字段 类型 内容 备注
mid num 用户UID
attribute num 关注属性 0未关注
2已关注
6已互粉
mtime num 成为粉丝时间 时间戳
互关后刷新
tag null 作用尚不明确
special num 0 作用尚不明确
uname str 用户昵称
face str 用户头像url
sign str 用户签名
official_verify obj 认证信息
vip obj 会员信息

数组list中的对象中的official_verify对象:

字段 类型 内容 备注
type num 用户认证类型 -1
1认证
desc str 用户认证信息 无为空

数组list中的对象中的vip对象:

字段 类型 内容 备注
vipType num 大会员类型 0
1月会员
2年会员
vipDueDate num 会员到期时间 时间戳 毫秒
dueRemark str 作用尚不明确
accessStatus num 0 作用尚不明确
vipStatus num 大会员状态 0
1
vipStatusWarn str 作用尚不明确
themeType num 0 作用尚不明确
label obj 作用尚不明确

vip中的label对象:

字段 类型 内容 备注
path str 作用尚不明确

示例:

以每页2项的方式获取UID=293793435的用户的第1页的粉丝明细

curl -G 'http://api.bilibili.com/x/relation/followers'\
--data-urlencode 'vmid=293793435'\
--data-urlencode 'ps=2'\
--data-urlencode 'pn=1'\
-b 'SESSDATA=xxx'
{
	"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
	}
}

查询用户关注明细

http://api.bilibili.com/x/relation/followings

请求方式GET

登录(SESSDATA)可看自己全部

url参数

参数名 类型 内容 必要性 备注
vmid num 目标用户UID 必要
ps num 每页项数 非必要 默认为50
pn num 页码 非必要 默认为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 关注总数

data中的list数组:

类型 内容 备注
0 obj 关注1
n obj 关注n+1 按照关注顺序排列
…… obj …… ……

数组list中的对象:

字段 类型 内容 备注
mid num 用户UID
attribute num 关注属性 0未关注
2已关注
6已互粉
mtime num 关注对方时间 时间戳
互关后刷新
tag null默认分组
array存在至少一个分组
分组ID 作用尚不明确
special num 特别关注标志 0
1
uname str 用户昵称
face str 用户头像url
sign str 用户签名
official_verify obj 认证信息
vip obj 会员信息

数组list中的对象中的tag数组:

类型 内容 备注
0 num 位于分组1的分组ID
n num 位于分组n+1的分组ID
…… num …… ……

数组list中的对象中的official_verify对象:

字段 类型 内容 备注
type num 用户认证类型 -1
0认证
desc str 用户认证信息 无为空

数组list中的对象中的vip对象:

字段 类型 内容 备注
vipType num 大会员类型 0
1月会员
2年会员
vipDueDate num 会员到期时间 时间戳 毫秒
dueRemark str 作用尚不明确
accessStatus num 0 作用尚不明确
vipStatus num 大会员状态 0
1
vipStatusWarn str 作用尚不明确
themeType num 0 作用尚不明确
label obj 作用尚不明确

vip中的label对象:

字段 类型 内容 备注
path str 作用尚不明确

示例:

以每页2项的方式获取UID=293793435的用户的第1页的关注明细

curl -G 'http://api.bilibili.com/x/relation/ollowings'\
--data-urlencode 'vmid=293793435'\
--data-urlencode 'ps=2'\
--data-urlencode 'pn=1'\
-b 'SESSDATA=xxx'
{
	"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
	}
}

操作用户关系(关注/取关 等)

http://api.bilibili.com/x/relation/modify

请求方式POST

需要登录(SESSDATA)

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
fid num 目标用户UID 必要
act num 操作代码 必要 操作代码见下表
re_src num 关注来源代码 必要 空间11
视频14
文章115
csrf str CSRF Token位于cookie 必要

操作代码act

代码 含义
1 关注
2 取关
3 悄悄关注
4 取消悄悄关注
5 拉黑
6 取消拉黑
7 踢出粉丝

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-102账号被封停
-111csrf校验失败
-400请求错误
22003用户位于黑名单
message str 错误信息 默认为0
ttl num 1

示例:

关注UID=14082的用户

curl 'http://http://api.bilibili.com/x/relation/modify'\
--data-urlencode 'fid=14082'\
--data-urlencode 'act=1'\
--data-urlencode 're_src=11'\
--data-urlencode 'csrf=xxx'\
-b 'SESSDATA=xxx'
{
	"code": 0,
	"message": "0",
	"ttl": 1
}

查询用户与自己关系1 (仅查关注)

http://api.bilibili.com/x/relation

请求方式GET

需要登录(SESSDATA)

url参数

参数名 类型 内容 必要性 备注
fid num 目标用户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默认分组
array存在至少一个分组
分组ID
special num 特别关注标志 0
1

tag数组:

类型 内容 备注
0 num 位于分组1的分组ID
n num 位于分组n+1的分组ID
…… num …… ……

示例:

可得对于UID=258150656的用户,在2018/10/28 0:51:41时关注且设为特别关注并位于ID为-10分组中

curl -G 'http://http://api.bilibili.com/x/relation'\
--data-urlencode 'fid=258150656'\
-b 'SESSDATA=xxx'
{
	"code": 0,
	"message": "0",
	"ttl": 1,
	"data": {
		"mid": 258150656,
		"attribute": 2,
		"mtime": 1540659101,
		"tag": [-10],
		"special": 1
	}
}

查询用户与自己关系2(互相)

http://api.bilibili.com/x/space/acc/relation

请求方式GET

需要登录(SESSDATA)

url参数

参数名 类型 内容 必要性 备注
mid num 目标用户UID 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-400请求错误
message str 错误信息 默认为0
ttl num 1
data obj 信息本体

data对象:

字段 类型 内容 备注
relation obj 目标用户对于本用户的属性
be_relation obj 本用户对于目标用户的属性

data中的relation对象:

字段 类型 内容 备注
mid num 对方用户UID
attribute num
mtime num 关注对方时间 互关后刷新时间
tag null默认分组
array存在至少一个分组
special num

data中的be_relation对象:

字段 类型 内容 备注
mid num
attribute num
mtime num 成为粉丝时间 互关后刷新时间
tag null默认分组
array存在至少一个分组
special num

be_relationrelation中的tag数组:

类型 内容 备注
0 num 位于分组1的分组ID
n num 位于分组n+1的分组ID
…… num …… ……

示例:

可得对于UID=15858903的用户,在2019/1/24 14:24:19时关注了对方且互相关注自己将对方特别关注并同时位于ID为-10194110的分组中对方也将自己设为特别关注并同时位于ID为-1056502的分组中(虽然我看不到)

curl -G 'http://api.bilibili.com/x/space/acc/relation'\
--data-urlencode 'mid=15858903'\
-b 'SESSDATA=xxx'
{
	"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
		}
	}
}

关注分组相关

查询关注分组列表

http://api.bilibili.com/x/relation/tags

请求方式GET

需要登录(SESSDATA)

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
message str 错误信息 默认为0
ttl num 1
data array 分组列表

data数组:

类型 内容 备注
0 obj 特别关注分组
1 obj 默认分组
n obj 其他分组
…… num …… ……

数组data中的对象:

字段 类型 内容 备注
tagid num 分组ID 特别关注恒为-10
默认分组恒为0
name str 分组名称
count num 分组成员数

示例:

查询所有的分组的名字以及ID

curl 'http://api.bilibili.com/x/relation/tags'\
-b 'SESSDATA=xxx'
{
	"code": 0,
	"message": "0",
	"ttl": 1,
	"data": [{
		"tagid": -10,
		"name": "特别关注",
		"count": 16
	}, {
		"tagid": 0,
		"name": "默认分组",
		"count": 536
	},{
		"tagid": 194111,
		"name": "我的同学",
		"count": 16
	},
	…………
	]
}

查询关注分组明细

http://api.bilibili.com/x/relation/tag

请求方式GET

需要登录(SESSDATA)

url参数

参数名 类型 内容 必要性 备注
tagid num 分组ID 必要 特别关注恒为-10
默认分组恒为0
ps num 每页项数 非必要 默认为50
pn num 页数 非必要 默认为1

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
-400请求错误
22104该分组不存在
message str 错误信息 默认为0
ttl num 1
data array 成员列表

data数组:

类型 内容 备注
0 obj 成员信息1
n obj 成员信息n+1 按照添加顺序排序
…… obj …… ……

数组data中的对象:

字段 类型 内容 备注
mid num 用户UID
uname str 用户昵称
face str 用户头像url
sign str 用户签名
official_verify obj 认证信息
vip obj 会员信息

数组data中的对象中的official_verify对象:

字段 类型 内容 备注
type num 用户认证类型 -1
1认证
desc str 用户认证信息 无为空

数组data中的对象中的vip对象:

字段 类型 内容 备注
vipType num 大会员类型 0
1月会员
2年会员
vipDueDate num 会员到期时间 毫秒 时间戳
dueRemark str 作用尚不明确
accessStatus num 0 作用尚不明确
vipStatus num 大会员状态 0无
1有
vipStatusWarn str 作用尚不明确
themeType num 0 作用尚不明确
label obj 作用尚不明确

数组data中的对象中的label对象:

字段 类型 内容 备注
path str 作用尚不明确

示例:

以每页2项的方式获取了ID为207542分组的第1页的粉丝明细

curl -G 'http://api.bilibili.com/x/relation/tag'\
--data-urlencode 'tagid=207542'\
--data-urlencode 'ps=2'\
--data-urlencode 'pn=1'\
-b 'SESSDATA=xxx'
{
	"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": ""
			}
		}
	}]
}

查询目标用户所在的分组

http://api.bilibili.com/x/relation/tag/user

请求方式GET

需要登录(SESSDATA)

url参数

参数名 类型 内容 必要性 备注
fid num 目标用户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 ……

示例:

查询用户UID=319214221存在的所有分组ID和名称

curl -G 'http://api.bilibili.com/x/relation/tag/user'\
--data-urlencode 'fid=319214221'\
-b 'SESSDATA=xxx'
{
	"code": 0,
	"message": "0",
	"ttl": 1,
	"data": {
		"-10": "特别关注",
		"194111": "我的同学"
	}
}

查询所有特别关注的UID

http://api.bilibili.com/x/relation/tag/special

请求方式GET

需要登录(SESSDATA)

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-101账号未登录
message str 错误信息 默认为0
ttl num 1
data array 成员列表

data数组:

类型 内容 备注
0 num 成员1UID
n num 成员n+1UID
…… num …… ……

示例:

curl 'http://api.bilibili.com/x/relation/tag/special'\
-b 'SESSDATA=xxx'
{
    "code": 0,
    "message": "0",
    "ttl": 1,
    "data": [
        500716647,
        32832243,
        53456,
        25944552,
        301839556,
        427494870,
        319214221,
        31949159,
        382666849,
        258318451,
        15858903,
        54992199,
        3379951,
        392279807,
        23215368,
        258150656,
        20165629,
        22179720
    ]
}

创建分组

http://api.bilibili.com/x/relation/tag/create

请求方式POST

需要登录(SESSDATA)

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
tag str 分组名 必要 最长16字符
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-111csrf校验失败
-101账号未登录
-400请求错误
22106该分组已经存在
22103分组名过长
message str 错误信息 默认为0
ttl num 1
data obj 信息本体

data对象:

字段 类型 内容 备注
tagid num 创建的分组的ID

示例:

创建了名为测试的分组得到ID为216677

curl 'http://api.bilibili.com/x/relation/tag/create'\
--data-urlencode 'tag=测试'\
--data-urlencode 'csrf=xxx'\
-b 'SESSDATA=xxx'
{
	"code": 0,
	"message": "0",
	"ttl": 1,
	"data": {
		"tagid": 216677
	}
}

重命名分组

http://api.bilibili.com/x/relation/tag/update

请求方式POST

需要登录(SESSDATA)

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
tagid num 分组ID 必要
name str 新名称 必要 最长16字符
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-111csrf校验失败
-101账号未登录
-400请求错误
22103分组名过长
22104该分组不存在
message str 错误信息 默认为0
ttl num 1

示例:

把ID为194112的分组更名为膜法师

curl 'http://api.bilibili.com/x/relation/tag/update'\
--data-urlencode 'tagid=194112'\
--data-urlencode 'name=膜法师'\
--data-urlencode 'csrf=xxx'\
-b 'SESSDATA=xxx'
{
	"code": 0,
	"message": "0",
	"ttl": 1
}

删除分组

http://api.bilibili.com/x/relation/tag/del

请求方式POST

需要登录(SESSDATA)

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
tagid num 分组ID 必要
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-111csrf校验失败
-101账号未登录
-400请求错误
message str 错误信息 默认为0
ttl num 1

示例:

删除分组ID为216699的分组

curl 'http://api.bilibili.com/x/relation/tag/del'\
--data-urlencode 'tagid=216699'\
--data-urlencode 'csrf=xxx'\
-b 'SESSDATA=xxx'
{
	"code": 0,
	"message": "0",
	"ttl": 1
}

修改分组成员(添加/删除)

http://api.bilibili.com/x/relation/tags/addUsers

请求方式POST

需要登录(SESSDATA)

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
fids nums 目标用户UID 必要 每个ID之间用","%2C间隔
tagids nums 分组ID 必要 每个ID之间用","%2C间隔
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-111csrf校验失败
-101账号未登录
-400请求错误
22104无权限
22105未关注
message str 错误信息 默认为0
ttl num 1

示例:

把关注用户UID=205631797同时添加分组关系到ID为-10207542的分组中

curl 'http://api.bilibili.com/x/relation/tags/addUsers'\
--data-urlencode 'fids=205631797'\
--data-urlencode 'tagids=-10,207542'\
--data-urlencode 'csrf=xxx'\
-b 'SESSDATA=xxx'
{
	"code": 0,
	"message": "0",
	"ttl": 1
}

复制关注到分组

http://api.bilibili.com/x/relation/tags/copyUsers

请求方式POST

需要登录(SESSDATA)

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
fids nums 待复制的用户UID 必要 每个ID之间用","%2C间隔
tagids nums 目标分组ID 必要 每个ID之间用","%2C间隔
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-111csrf校验失败
-101账号未登录
-400请求错误
22104无权限
22105未关注
message str 错误信息 默认为0
ttl num 1

示例:

把关注用户UID=4856007UID=326499679同时复制到ID为231305的分组中

curl 'http://api.bilibili.com/x/relation/tags/copyUsers'\
--data-urlencode 'fids=4856007,326499679'\
--data-urlencode 'tagids=231305'\
--data-urlencode 'csrf=xxx'\
-b 'SESSDATA=xxx'
{
    "code":0,
    "message":"0",
    "ttl":1
}

移动关注到分组

http://api.bilibili.com/x/relation/tags/moveUsers

请求方式POST

需要登录(SESSDATA)

正文参数( application/x-www-form-urlencoded

参数名 类型 内容 必要性 备注
beforeTagids nums 原分组ID 必要 每个ID之间用","%2C间隔
afterTagids nums 新分组ID 必要 每个ID之间用","%2C间隔
fids nums 待移动的用户UID 必要 每个ID之间用","%2C间隔
csrf str CSRF Token位于cookie 必要

json回复

根对象:

字段 类型 内容 备注
code num 返回值 0成功
-111csrf校验失败
-101账号未登录
-400请求错误
22104无权限
22105未关注
message str 错误信息 默认为0
ttl num 1

示例:

把关注用户UID=321173469UID=327086920同时从ID为207542的分组移动到ID为231305的分组中

curl 'http://api.bilibili.com/x/relation/tags/moveUsers'\
--data-urlencode 'beforeTagids=207542'\
--data-urlencode 'afterTagids=23130'\
--data-urlencode 'fids=321173469,327086920'\
--data-urlencode 'csrf=xxx'\
-b 'SESSDATA=xxx'
{
    "code":0,
    "message":"0",
    "ttl":1
}