返回提交历史
Modified
docs/message/private_msg.md
+40
-5
Modified
docs/message/private_msg_content.md
+196
-13
XFEstudio/bilibili-API-collect
add more docs
8539abd
代码差异
2 个文件
+236
-18
@@ -4,7 +4,42 @@
4
4
5
5
### 会话对象
6
6
7
待补充……
7
| 字段 | 类型 | 内容 | 备注 |
8
| -------------------- | ---- | -------------- | -------------------------------------------------------------- |
9
| talker_id | num | 聊天对象的id | `session_type` 为 `1` 时表示用户 mid,为 `2` 时表示粉丝团 id |
10
| session_type | num | 聊天对象的类型 | 1:用户<br />2:粉丝团 |
11
| at_seqno | num | 最近一次未读at自己的消息的序列号 | 在粉丝团时有效,若没有未读的at自己的消息则为`0` |
12
| top_ts | num | | |
13
| group_name | str | 粉丝团名称 | 在粉丝团时有效 |
14
| group_cover | str | 粉丝团头像 | 在粉丝团时有效 |
15
| is_follow | num | 是否已关注对方 | 在用户会话中有效 |
16
| is_dnd | num | 是否设置了免打扰 | |
17
| ack_seqno | num | 最近一次已读的消息序列号 | |
18
| ack_ts | num | 最近一次已读时间 | 微秒级时间戳|
19
| session_ts | num | 会话时间 | 微秒级时间戳|
20
| unread_count | num | 未读消息数 | |
21
| last_msg | obj | 最近的一条消息 | 详见[私信主体对象](#私信主体对象) |
22
| group_type | num | 粉丝团类型 | 在粉丝团时有效<br />0:应援团<br />2:官方群 |
23
| can_fold | num | | |
24
| status | num | 会话状态 | |
25
| max_seqno | num | 最近一条消息的序列号 | |
26
| new_push_msg | num | 是否有新推送的消息 | |
27
| setting | num | | |
28
| is_guardian | num | | |
29
| is_intercept | num | 是否被拦截 | |
30
| is_trust | num | 是否不拦截此会话 | |
31
| system_msg_type | num | 系统消息类型 | 0:不是系统消息<br />7:UP主小助手 |
32
| account_info | obj | 会话信息 | 仅在系统消息中出现 |
33
| live_status | num | 是否正在直播 | |
34
| biz_msg_unread_count | num | 未读推送消息数 | |
35
| user_label | null | | |
36
37
`account_info`对象:
38
39
| 字段 | 类型 | 内容 | 备注 |
40
| ------- | ---- | -------- | ---- |
41
| name | str | 会话名称 | |
42
| pic_url | str | 会话头像 | |
8
43
9
44
### 私信主体对象
10
45
@@ -14,7 +49,7 @@
14
49
| ---------------- | ---- | -------------- | -------------------------------------------------------------- |
15
50
| sender_uid | num | 发送者mid | |
16
51
| receiver_type | num | 接收者类型 | 1:用户<br />2:粉丝团 |
17
| receiver_id | num | 接收者id | `receiver_type` 为 `1` 时表示用户 mid,为 `2` 时表示应援团 id |
52
| receiver_id | num | 接收者id | `receiver_type` 为 `1` 时表示用户 mid,为 `2` 时表示粉丝团 id |
18
53
| msg_type | num | 消息类型 | 详见[私信消息类型、内容说明](private_msg_content.md) |
19
54
| content | str | 消息内容 | [私信内容对象](private_msg_content.md)经过 JSON 序列化后的文本 |
20
55
| msg_seqno | num | 消息序列号 | 按照时间顺序从小到大 |
@@ -52,7 +87,7 @@
52
87
| 10 | 自动回复 - 关键词回复 | |
53
88
| 11 | 自动回复 - 大航海上船回复 | |
54
89
| 12 | 自动推送 - UP 主赠言 | 在以前稿件的自动推送与其附带的 UP 主赠言是 2 条不同的私信(其中 UP 主赠言的消息来源代码为 12),现在 UP 主赠言已被合并成为稿件自动推送的一部分 |
55
| 13 | 应援团系统提示 | 如:应援团中的提示信息“欢迎xxx入群” |
90
| 13 | 粉丝团系统提示 | 如:粉丝团中的提示信息“欢迎xxx入群” |
56
91
| 16 | (?) | **作用尚不明确** |
57
92
| 17 | 互相关注 | 互相关注时自动发送的私信“我们已互相关注,开始聊天吧~” |
58
93
| 18 | 系统提示 | 如:“对方主动回复或关注你前,最多发送1条消息” |
@@ -138,7 +173,7 @@ curl 'https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread' \
138
173
139
174
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
140
175
| ----------------- | ---- | ---------------- | ------ | ------------------------------------------------------ |
141
| talker_id | num | 聊天对象的id | 必要 | `session_type` 为 `1` 时表示用户 mid,为 `2` 时表示应援团 id |
176
| talker_id | num | 聊天对象的id | 必要 | `session_type` 为 `1` 时表示用户 mid,为 `2` 时表示粉丝团 id |
142
177
| session_type | num | 聊天对象的类型 | 必要 | 1:用户<br />2:粉丝团 |
143
178
| size | num | 返回消息数量 | 非必要 | 默认为 20,最大为 200 |
144
179
| begin_seqno | num | 开始的序列号 | 非必要 | 提供本参数时返回以本序列号开始(不包括本序列号)的消息 |
@@ -284,7 +319,7 @@ curl -G 'https://api.vc.bilibili.com/svr_sync/v1/svr_sync/fetch_session_msgs' \
284
319
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
285
320
| --------------------- | ---- | ------------------------ | ------ | ---------------------------------------------------- |
286
321
| msg[sender_uid] | num | 发送者mid | 必要 | 必须为自己的 mid |
287
| msg[receiver_id] | num | 接收者id | 必要 | `msg[receiver_type]` 为 `1` 时表示用户 mid,为 `2` 时表示应援团 id |
322
| msg[receiver_id] | num | 接收者id | 必要 | `msg[receiver_type]` 为 `1` 时表示用户 mid,为 `2` 时表示粉丝团 id |
288
323
| msg[receiver_type] | num | 接收者类型 | 必要 | 1:用户<br />2:粉丝团 |
289
324
| msg[msg_type] | num | 消息类型 | 必要 | 详见[私信消息类型、内容说明](private_msg_content.md) |
290
325
| msg[msg_status] | num | 消息状态 | 非必要 | 恒为 `0` |
@@ -28,6 +28,8 @@
28
28
29
29
在发送私信时,请确保下面的对象合法且 `url` 项的值为 B 站的图床 url,否则会报 21037 `图片格式不合法,不要调戏接口啦` 错误
30
30
31
建议设置 `height` 与 `width` 属性,否则可能会导致消息显示异常
32
31
33
根对象:
32
34
33
35
| 字段 | 类型 | 内容 | 备注 |
@@ -58,7 +60,7 @@
58
60
59
61
内容为目标私信的 `msg_key`
60
62
61
请确保目标私信存在、在撤回有效期(120 秒)里,且与发送的私信在同一会话内;成功发送此私信后,目标私信的 `msg_status` 会变成 `1`
63
请确保目标私信存在、在撤回有效期(120 秒)里,且与发送的私信在同一会话内;成功发送此私信后,目标私信的 `msg_status` 会变成 `1`(在前端会显示目标消息被撤回)
62
64
63
65
**示例:**
64
66
@@ -68,7 +70,7 @@
68
70
7345551441311046575
69
71
```
70
72
71
若发送成功,则私信 A 会被撤回,并且其 `msg_status` 也会变成 `1`
73
若发送成功,则私信 A 会被撤回(在前端显示该消息被撤回),并且其 `msg_status` 也会变成 `1`
72
74
73
75
## 自定义表情消息(`msg_type=6`)
74
76
@@ -83,7 +85,7 @@
83
85
| author | str | 分享内容作者 | 此项不实时更新,在发送私信时设置(非必要) |
84
86
| headline | str | 分享内容主标题 | 比 `title` 更突出;此项不实时更新,在发送私信时设置(非必要) |
85
87
| id | num | 分享内容id | |
86
| source | num | 分享内容类型 | ~~1:小视频~~(已弃用)<br />2:相簿<br />3:纯文字<br />4:直播<br />5:视频<br />6:专栏<br />7:番剧(`id` 为 season_id)<br />8:音乐<br />9:国产动画(`id` 为 AV 号)<br />10:图片<br />11:动态<br />16:番剧(`id` 为 epid)<br />17:番剧 |
88
| source | num | 分享内容类型 | ~~1:小视频~~(已弃用)<br />2:相簿<br />3:纯文字<br />4:直播(此类型不常用,见[分享其他内容消息](#分享其他内容消息msg_type14))<br />5:视频<br />6:专栏<br />7:番剧(`id` 为 season_id)<br />8:音乐<br />9:国产动画(`id` 为 AV 号)<br />10:图片<br />11:动态<br />16:番剧(`id` 为 epid)<br />17:番剧 |
87
89
| source_desc | str | 分享内容类型说明 | 仅当 `source` 值为 `16` 时有此项 |
88
90
| thumb | str | 分享内容封面 | 此项不实时更新,在发送私信时设置 |
89
91
| title | str | 分享内容标题 | 此项不实时更新,在发送私信时设置 |
@@ -92,6 +94,8 @@
92
94
93
95
**示例:**
94
96
97
分享 UP 主 “社会易姐QwQ” 的视频 av246551172
98
95
99
```json
96
100
{
97
101
"author": "社会易姐QwQ",
@@ -106,6 +110,8 @@
106
110
107
111
### 小程序消息(`msg_type=9`)
108
112
113
由于 B 站并没有对外公开小程序,此消息类型不常用
114
109
115
根对象:
110
116
111
117
| 字段 | 类型 | 内容 | 备注 |
@@ -121,6 +127,8 @@
121
127
122
128
**示例:**
123
129
130
分享 “主站测试专用小程序”
131
124
132
```json
125
133
{
126
134
"avatar": "http://i0.hdslb.com/bfs/mall/mall/7b/dd/7bdd072290de017593791b52e937ca29.png",
@@ -138,27 +146,80 @@
138
146
139
147
此类型消息仅可接收,不可直接发送
140
148
149
**按钮显示逻辑说明:**
150
151
- **按钮的url:**首先尝试读取 `jump_uri_*_config` 对象中表示当前设备类型的 url(如 `web_uri`、`android_uri` 等);若为空值,则尝试读取 `jump_uri_*_config` 对象中 `all_uri` 的值;若仍为空值,则读取根对象中 `jump_uri_*` 的值;若仍为空值,则不显示该按钮(无论 `jump_text_*` 或 `jump_uri_*_config` 中的 `text` 是否为非空值)
152
- **按钮提示文字:**若按钮是可见的,则先尝试读取 `jump_uri_*_config` 对象中 `text` 的值;若为空值,则读取根对象中 `jump_text_*` 的值;若仍为空值,则提示文字为 `查看详情`
153
141
154
根对象:
142
155
143
156
| 字段 | 类型 | 内容 | 备注 |
144
157
| ----------------- | ----- | ------------- | ------------------------- |
145
158
| title | str | 通知标题 | |
146
159
| text | str | 通知内容 | |
147
| jump_text | str | 按钮1提示文字 | |
148
| jump_uri | str | 按钮1跳转链接 | |
149
| modules | array | 详细信息 | |
150
| jump_text_2 | str | 按钮2提示文字 | |
151
| jump_uri_2 | str | 按钮2跳转链接 | |
152
| jump_text_3 | str | 按钮3提示文字 | |
153
| jump_uri_3 | str | 按钮3跳转链接 | |
154
| notifier | obj | 发送者信息 | |
160
| jump_text | str | 按钮1提示文字 | 若按钮1不存在则为空;若按钮1存在此项也可能为空,此时前端显示文字为 `查看详情` |
161
| jump_uri | str | 按钮1跳转链接 | 若按钮1不存在则为空 |
162
| modules | 有效时:array<br />无效时:null | 详细信息 | |
163
| jump_text_2 | str | 按钮2提示文字 | 若按钮2不存在则为空;若按钮2存在此项也可能为空,此时前端显示文字为 `查看详情` |
164
| jump_uri_2 | str | 按钮2跳转链接 | 若按钮2不存在则为空 |
165
| jump_text_3 | str | 按钮3提示文字 | 若按钮3不存在则为空;若按钮3存在此项也可能为空,此时前端显示文字为 `查看详情` |
166
| jump_uri_3 | str | 按钮3跳转链接 | 若按钮3不存在则为空 |
167
| notifier | 有效时:obj<br />无效时:null | 发送者信息 | |
155
168
| jump_uri_config | obj | 按钮1配置 | |
156
169
| jump_uri_2_config | obj | 按钮2配置 | |
157
170
| jump_uri_3_config | obj | 按钮3配置 | |
158
| biz_content | obj | 扩展信息 | |
171
| biz_content | 有效时:obj<br />无效时:null | 扩展信息 | |
172
173
`modules`数组:
174
175
| 项 | 类型 | 内容 | 备注 |
176
| ---- | ---- | ------------- | ---- |
177
| 0 | obj | 详细信息1 | |
178
| n | obj | 详细信息(n+1) | |
179
| …… | obj | …… | …… |
180
181
`modules`数组中的对象:
182
183
| 字段 | 类型 | 内容 | 备注 |
184
| ------ | ---- | ---- | ---- |
185
| title | str | 标题 | |
186
| detail | str | 内容 | |
187
188
`notifier`对象:
189
190
| 字段 | 类型 | 内容 | 备注 |
191
| ---------- | ---- | ---------- | ------ |
192
| avatar_url | str | 发送者头像 | |
193
| nickname | str | 发送者名称 | |
194
| jump_url | str | 发送者链接 | 可为空 |
195
196
`jump_uri_config`、`jump_uri_2_config`、`jump_uri_3_config`对象:
197
198
| 字段 | 类型 | 内容 | 备注 |
199
| ----------- | ---- | ----------------------- | -------------------- |
200
| all_uri | str | 所有设备的跳转链接 | 若按钮不存在则无此项 |
201
| android_uri | str | Android客户端的跳转链接 | 若按钮不存在则无此项 |
202
| iphone_uri | str | iPhone客户端的跳转链接 | 若按钮不存在则无此项 |
203
| ipad_uri | str | iPad客户端的跳转链接 | 若按钮不存在则无此项 |
204
| web_uri | str | 网页上的跳转链接 | 若按钮不存在则无此项 |
205
| text | str | 按钮提示文字 | 若按钮不存在则为空 |
206
207
`biz_content`对象:
208
209
| 字段 | 类型 | 内容 | 备注 |
210
| ------------ | ---- | ----------- | ---------------- |
211
| cover | str | 封面url | |
212
| backup_cover | str | 备用封面url | |
213
| refresh_type | num | (?) | **作用尚不明确** |
214
| biz_type | num | (?) | **作用尚不明确** |
215
| biz_id1 | str | (?) | **作用尚不明确** |
216
| biz_id2 | str | (?) | **作用尚不明确** |
217
| biz_status | num | (?) | **作用尚不明确** |
159
218
160
219
**示例:**
161
220
221
直播开始提醒
222
162
223
```json
163
224
{
164
225
"title": "直播开始提醒",
@@ -222,8 +283,17 @@
222
283
| pub_date | num | 视频发布时间 | 秒级时间戳,若视频失效则为 `0` |
223
284
| attach_msg | 有效时:obj<br />无效时:null | UP主赠言 | |
224
285
286
`attach_msg`对象:
287
288
| 字段 | 类型 | 内容 | 备注 |
289
| ------- | ---- | -------- | ---------------------------------------------- |
290
| id | num | 赠言id | |
291
| content | str | 赠言内容 | 会自动加上 `UP主赠言:` 前缀,可能包含私信表情 |
292
225
293
**示例:**
226
294
295
推送视频 av740817783/BV1Dk4y1E7MZ
296
227
297
```json
228
298
{
229
299
"title": "【2023嵌入式大赛】浅浅测试一下龙芯开发板",
@@ -260,8 +330,17 @@
260
330
| attach_msg | 有效时:obj<br />无效时:null | UP主赠言 | |
261
331
| pub_date | num | 专栏发布时间 | 秒级时间戳,若专栏失效则为 `0` |
262
332
333
`attach_msg`对象:
334
335
| 字段 | 类型 | 内容 | 备注 |
336
| ------- | ---- | -------- | ---------------------------------------------- |
337
| id | num | 赠言id | |
338
| content | str | 赠言内容 | 会自动加上 `UP主赠言:` 前缀,可能包含私信表情 |
339
263
340
**示例:**
264
341
342
推送专栏 cv18275013
343
265
344
```json
266
345
{
267
346
"rid": 18275013,
@@ -303,8 +382,71 @@
303
382
}
304
383
```
305
384
385
### 分享其他内容消息(`msg_type=14`)
386
387
常见于分享直播
388
389
根对象:
390
391
| 字段 | 类型 | 内容 | 备注 |
392
| ------ | ---- | ---------------- | -------------------------------- |
393
| author | str | 分享内容作者 | 此项不实时更新,在发送私信时设置 |
394
| cover | str | 分享内容封面 | 此项不实时更新,在发送私信时设置 |
395
| desc | str | 分享内容简介 | 此项不实时更新,在发送私信时设置 |
396
| source | str | 分享内容类型说明 | 常见的值为 `直播` |
397
| title | str | 分享内容标题 | 此项不实时更新,在发送私信时设置 |
398
| url | str | 分享内容url | |
399
400
**示例:**
401
402
分享直播 ID 21738461
403
404
```json
405
{
406
"author": "哔哩哔哩晚会",
407
"cover": "https://i1.hdslb.com/bfs/face/1b593d28fcd0cf63837c3ea80ac96d01bb85ec3b.jpg",
408
"desc": "主播:哔哩哔哩晚会 https://live.bilibili.com/21738461",
409
"source": "直播",
410
"title": "2023最美的夜 bilibili晚会",
411
"url": "https://live.bilibili.com/21738461?broadcast_type=0&is_room_feed=1&live_from=41000&share_medium=android&share_source=bili_message&bbid=XU8CE838022AF6625C64B2153A3EF1E571AFF&ts=1704038936971"
412
}
413
```
414
306
415
### 被关注时的自动推送消息(`msg_type=16`)
307
416
417
一般仅在开启了 B 站的 “被关注回复” 功能与勾选 “被关注后,向关注我的人推送我的往期作品” 选项(仅部分用户会显示此选项)时才会发送此类型消息,紧接在自动发送的文字消息其后
418
419
根对象:
420
421
| 字段 | 类型 | 内容 | 备注 |
422
| ------------- | ----- | ---------------- | ------------------------------------ |
423
| main_title | str | 主标题 | 一般为 `更多宝藏内容` |
424
| reply_content | str | 自动回复文字内容 | 仅显示在聊天列表,在私信内容中不显示 |
425
| sub_cards | array | 推送的作品列表 | 一般为3个 |
426
427
`sub_cards`数组:
428
429
| 项 | 类型 | 内容 | 备注 |
430
| ---- | ---- | --------- | ---- |
431
| 0 | obj | 作品1 | |
432
| n | obj | 作品(n+1) | |
433
| …… | obj | …… | …… |
434
435
`sub_cards`数组中的对象:
436
437
| 字段 | 类型 | 内容 | 备注 |
438
| --------- | ---- | ------------ | -------------------------------------------------------------- |
439
| card_id | num | 作品id | 当作品为视频时:表示AV号<br />当作品为专栏时:表示CV号 |
440
| card_type | num | 作品类型 | 1:视频 |
441
| jump_url | str | 作品链接 | |
442
| cover_url | str | 作品封面url | |
443
| field1 | str | 作品标题 | |
444
| field2 | str | 作品发布时间 | 格式:`YYYY-MM-DD` |
445
| field3 | str | 字段3 | 当作品为视频时:表示作品播放量<br />当作品为专栏时:表示阅读量 |
446
| icon3 | num | 图标3类型 | 1:播放量 |
447
| field4 | str | 字段4 | 当作品为视频时:表示作品弹幕数<br />当作品为专栏时:表示评论数 |
448
| icon4 | num | 图标4类型 | 3:弹幕数 |
449
308
450
**示例:**
309
451
310
452
```json
@@ -350,7 +492,7 @@
350
492
351
493
### 系统提示消息(`msg_type=18`)
352
494
353
此类型消息仅可接收,不可直接发送
495
此类型消息仅可接收,不可直接发送;由系统自动发送,但仅自己可见
354
496
355
497
根对象:
356
498
@@ -376,6 +518,8 @@
376
518
377
519
**示例:**
378
520
521
若自己与对方从未聊过天,且对方未关注自己,则会有系统提示
522
379
523
```json
380
524
{
381
525
"content": "[{\"text\":\"对方主动回复或关注你前,最多发送1条消息\",\"color_day\":\"#9499A0\",\"color_nig\":\"#9499A0\"}]"
@@ -386,4 +530,43 @@
386
530
387
531
以下消息类型仅常见于粉丝团中的系统消息(`receiver_type` 为 `2` 且 `sender_uid` 为 `0`)
388
532
533
### 成员入群消息(`msg_type=301`)
534
535
### 成员退群消息(`msg_type=302`)
536
537
### 粉丝团冻结消息(`msg_type=303`)
538
539
### 粉丝团解散消息(`msg_type=304`)
540
541
### 粉丝团开通消息(`msg_type=305`)
542
543
### 成员入群消息(`msg_type=306`)
544
545
以上6种消息类型均为以下数据类型结构
546
547
根对象:
548
549
| 字段 | 类型 | 内容 | 备注 |
550
| -------- | ---- | -------- | ---- |
551
| group_id | num | 粉丝团id | |
552
| content | str | 提示文字 | |
553
554
**示例:**
389
555
556
`社会易姐QwQ的应援团` 开通的消息
557
558
```json
559
{
560
"group_id": 221082140,
561
"content": "社会易姐QwQ的应援团开通啦 (>▽<)"
562
}
563
```
564
565
成员 `wuziqian211` 进入 `社会易姐QwQ的应援团` 的消息
566
567
```json
568
{
569
"group_id": 221082140,
570
"content": "欢迎wuziqian211入群"
571
}
572
```