XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet
公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/bilibili-API-collect

update docs

fc60fd4
wuziqian211 <65224318+wuziqian211@users.noreply.github.com>
提交于

代码差异

2 个文件 +362 -49
Modified docs/message/private_msg.md +360 -47
@@ -4,35 +4,35 @@
4 4
5 5 ### 会话对象
6 6
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 | | |
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 | 置顶该会话的时间 | 微秒级时间戳;若未置顶该会话则为 `0` |
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 | 是否已设置不拦截此会话 | 若为 `1`,则表示此会话之前被拦截过,但用户选择信任本会话 |
31 | system_msg_type | num | 系统消息类型 | 0:非系统消息<br />1:主播小助手<br />7:UP主小助手<br />8:客服消息 |
32 | account_info | obj | 会话信息 | 仅在系统消息中出现 |
33 | live_status | num | 用户是否正在直播 | 在用户会话中有效 |
34 | biz_msg_unread_count | num | 未读推送消息数 | |
35 | user_label | null | (?) | **作用尚不明确** |
36 36
37 37 `account_info`对象:
38 38
@@ -57,7 +57,7 @@
57 57 | at_uids | 有效时:array<br />无效时:null | at的成员mid | 在粉丝团时有效;此项为 `null` 或 `[0]` 均表示没有 at 成员 |
58 58 | msg_key | num | 消息唯一id | 部分库在解析JSON对象中的大数时存在数值的精度丢失问题,因此在处理私信时可能会出现问题,建议使用修复了这一问题的库(如将大数转换成文本) |
59 59 | msg_status | num | 消息状态 | 0:正常<br />1:被撤回(接口仍能返回被撤回的私信内容)<br />2:被系统撤回(私信将不会显示在前端,B站接口也不会返回被系统撤回的私信)<br />50:图片已失效(私信内容为一张提示“图片出现问题”的图片) |
60 | sys_cancel | bool | 是否为系统撤回 | 仅当消息类型为 `5` 且此项值为 `true` 时有此项;若此项值为 `true`,表示目标消息是被系统撤回的 |
60 | sys_cancel | bool | 是否为系统撤回 | 仅当消息类型为 `5` 且此项值为 `true` 时有此项;若此项值为 `true`,表示目标消息是被系统撤回的,此时前端将不显示该私信且没有提示 |
61 61 | notify_code | str | 通知代码 | 发送通知时使用,以下划线 `_` 分割,第 1 项表示主业务 id,第 2 项表示子业务 id;若这条私信非通知则为空文本;详细信息有待补充 |
62 62 | new_face_version | num | 表情包版本 | 为 `0` 或无此项表示旧版表情包,此时 B 站会自动转换成新版表情包,例如 `[doge]` -> `[tv_doge]`;`1` 为新版 |
63 63 | msg_source | num | 消息来源 | 见[消息来源列表](#消息来源列表) |
@@ -72,21 +72,21 @@
72 72
73 73 ### 消息来源列表
74 74
75 | 代码 | 含义 | 备注 |
76 | ---- | ------------------------- | ---- |
77 | 0 | 未知来源 | |
78 | 1 | iOS | |
79 | 2 | Android | |
80 | 3 | H5 | |
81 | 4 | PC客户端 | |
82 | 5 | 官方自动推送 | 包括:官方向大多数用户发送的私信等 |
75 | 代码 | 含义 | 备注 |
76 | ---- | ------------------------- | ----------------------------------- |
77 | 0 | 未知来源 | |
78 | 1 | iOS | |
79 | 2 | Android | |
80 | 3 | H5 | |
81 | 4 | PC客户端 | |
82 | 5 | 官方自动推送 | 包括:官方向大多数用户发送的私信等 |
83 83 | 6 | 自动推送/发送 | 包括:特别关注时稿件的自动推送、因成为契约者而自动发送的私信、包月充电回馈私信、官方发送的特定于自己的消息等 |
84 | 7 | Web | |
85 | 8 | 自动回复 - 被关注回复 | |
86 | 9 | 自动回复 - 收到消息回复 | |
87 | 10 | 自动回复 - 关键词回复 | |
88 | 11 | 自动回复 - 大航海上船回复 | |
89 | 12 | 自动推送 - UP 主赠言 | 在以前稿件的自动推送与其附带的 UP 主赠言是 2 条不同的私信(其中 UP 主赠言的消息来源代码为 12),现在 UP 主赠言已被合并成为稿件自动推送的一部分 |
84 | 7 | Web | |
85 | 8 | 自动回复 - 被关注回复 | |
86 | 9 | 自动回复 - 收到消息回复 | |
87 | 10 | 自动回复 - 关键词回复 | |
88 | 11 | 自动回复 - 大航海上船回复 | |
89 | 12 | 自动推送 - UP 主赠言 | 在以前稿件的自动推送与其附带的 UP 主赠言是 2 条不同的私信(其中 UP 主赠言的消息来源代码为 12),现在 UP 主赠言已被合并成为稿件自动推送消息的一部分(`attach_msg`) |
90 90 | 13 | 粉丝团系统提示 | 如:粉丝团中的提示信息“欢迎xxx入群” |
91 91 | 16 | (?) | **作用尚不明确** |
92 92 | 17 | 互相关注 | 互相关注时自动发送的私信“我们已互相关注,开始聊天吧~” |
@@ -159,16 +159,329 @@ curl 'https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread' \
159 159
160 160 </details>
161 161
162 ## 会话详细信息
163
164 > https://api.vc.bilibili.com/session_svr/v1/session_svr/session_detail
165
166 *请求方式:GET*
167
168 认证方式:Cookie(SESSDATA)
169
170 若从未与该会话聊过天,则返回 1000004 `入口节点已存在` 错误
171
172 **url参数:**
173
174 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
175 | ------------ | ---- | ---------------- | ------ | ------------------------------------------------------ |
176 | talker_id | num | 聊天对象的id | 必要 | `session_type` 为 `1` 时表示用户 mid,为 `2` 时表示粉丝团 id |
177 | session_type | num | 聊天对象的类型 | 必要 | 1:用户<br />2:粉丝团 |
178 | build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
179 | mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
180
181 **json回复:**
182
183 根对象:
184
185 | 字段 | 类型 | 内容 | 备注 |
186 | ------- | ---- | -------- | ------------------------------------------------------------------------------ |
187 | code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误<br />1000004:入口节点已存在 |
188 | msg | str | 错误信息 | 默认为0 |
189 | message | str | 错误信息 | 默认为0 |
190 | ttl | num | 1 | |
191 | data | obj | 数据本体 | 详见[会话对象](#会话对象) |
192
193 **示例:**
194
195 获取会话`talker_id=293793435&session_type=1`的详细信息:
196
197 ```shell
198 curl -G 'https://api.vc.bilibili.com/session_svr/v1/session_svr/session_detail' \
199 --data-urlencode 'talker_id=293793435' \
200 --data-urlencode 'session_type=1' \
201 --data-urlencode 'build=0' \
202 --data-urlencode 'mobi_app=web' \
203 -b 'SESSDATA=xxx'
204 ```
205
206 <details>
207 <summary>查看响应示例:</summary>
208
209 ```json
210 {
211 "code": 0,
212 "msg": "0",
213 "message": "0",
214 "ttl": 1,
215 "data": {
216 "talker_id": 293793435,
217 "session_type": 1,
218 "at_seqno": 0,
219 "top_ts": 0,
220 "group_name": "",
221 "group_cover": "",
222 "is_follow": 1,
223 "is_dnd": 0,
224 "ack_seqno": 1236306587877408,
225 "ack_ts": 1709536984481314,
226 "session_ts": 1709385615744065,
227 "unread_count": 0,
228 "last_msg": {
229 "sender_uid": 293793435,
230 "receiver_type": 1,
231 "receiver_id": 425503913,
232 "msg_type": 11,
233 "content": "{\"title\":\"OHHHHHH家人们,我分数终于破w了!紫框了这下确实不好意思说自己是只打红谱的萌新了\",\"times\":14,\"cover\":\"http://i0.hdslb.com/bfs/archive/8821c03ab27a0bcf2bf32af814e758ab17a1e27e.png\",\"rid\":1951316064,\"type_\":8,\"desc\":\"OHHHHHH家人们,我分数终于破w了!紫框了这下确实不好意思说自己是只打红谱的萌新了\",\"bvid\":\"BV1zC411p7JN\",\"view\":452,\"danmaku\":0,\"pub_date\":1709385603,\"attach_msg\":null}",
234 "msg_seqno": 1236306587877408,
235 "timestamp": 1709385615,
236 "at_uids": null,
237 "msg_key": 7341755312943193481,
238 "msg_status": 0,
239 "notify_code": "",
240 "new_face_version": 1,
241 "msg_source": 6
242 },
243 "group_type": 0,
244 "can_fold": 0,
245 "status": 0,
246 "max_seqno": 1236306587877408,
247 "new_push_msg": 0,
248 "setting": 0,
249 "is_guardian": 0,
250 "is_intercept": 0,
251 "is_trust": 0,
252 "system_msg_type": 0,
253 "live_status": 0,
254 "biz_msg_unread_count": 0,
255 "user_label": null
256 }
257 }
258 ```
259
260 </details>
261
262 ## 获取新会话列表
263
264 > https://api.vc.bilibili.com/session_svr/v1/session_svr/new_sessions
265
266 *请求方式:GET*
267
268 认证方式:Cookie(SESSDATA)
269
270 获取指定时间之后的新会话列表
271
272 **url参数:**
273
274 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
275 | -------- | ---- | ---------------- | ------ | ------------------------- |
276 | begin_ts | num | 起始时间 | 非必要 | 微秒级时间戳 |
277 | size | num | 返回的会话数 | 非必要 | 默认为 `20`,最大为 `100` |
278 | build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
279 | mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
280
281 **json回复:**
282
283 根对象:
284
285 | 字段 | 类型 | 内容 | 备注 |
286 | ------- | ---- | -------- | ------------------------------------------------- |
287 | code | num | 返回值 | 0:成功<br />-101:账号未登录<br />-400:请求错误 |
288 | msg | str | 错误信息 | 默认为0 |
289 | message | str | 错误信息 | 默认为0 |
290 | ttl | num | 1 | |
291 | data | obj | 数据本体 | |
292
293 `data`对象:
294
295 | 字段 | 类型 | 内容 | 备注 |
296 | --------------------- | ---- | ---------------------------- | ---------------------- |
297 | session_list | 有会话时:array<br />无会话时:null | 会话列表 | 按发送时间顺序逆向排序 |
298 | has_more | num | 是否有更多会话 | |
299 | anti_distrub_cleaning | bool | 是否开启“一键防骚扰”功能 | |
300 | is_address_list_empty | num | (?) | **作用尚不明确** |
301 | show_level | bool | 是否在会话列表中显示用户等级 | 目前恒为 `false` |
302
303 `data`对象中的`session_list`数组:
304
305 | 项 | 类型 | 内容 | 备注 |
306 | ---- | ---- | --------- | ------------------------- |
307 | 0 | obj | 会话1 | 详见[会话对象](#会话对象) |
308 | n | obj | 会话(n+1) | |
309 | …… | obj | …… | …… |
310
311 **示例:**
312
313 获取`begin_ts=1712420213519391`之后的新会话列表:
314
315 ```shell
316 curl -G 'https://api.vc.bilibili.com/session_svr/v1/session_svr/new_sessions' \
317 --data-urlencode 'begin_ts=1712420213519391' \
318 --data-urlencode 'size=3' \
319 --data-urlencode 'build=0' \
320 --data-urlencode 'mobi_app=web' \
321 -b 'SESSDATA=xxx'
322 ```
323
324 <details>
325 <summary>查看响应示例:</summary>
326
327 ```json
328 {
329 "code": 0,
330 "msg": "0",
331 "message": "0",
332 "ttl": 1,
333 "data": {
334 "session_list": [
335 {
336 "talker_id": 844424930131966,
337 "session_type": 1,
338 "at_seqno": 0,
339 "top_ts": 0,
340 "group_name": "",
341 "group_cover": "",
342 "is_follow": 1,
343 "is_dnd": 0,
344 "ack_seqno": 1238729956474887,
345 "ack_ts": 1709536924979884,
346 "session_ts": 1712305278098351,
347 "unread_count": 4,
348 "last_msg": {
349 "sender_uid": 844424930131966,
350 "receiver_type": 1,
351 "receiver_id": 425503913,
352 "msg_type": 10,
353 "content": "{\"title\":\"流量奖励到账通知\",\"text\":\"恭喜您已获得2000流量曝光奖励,快来投稿使用吧。\",\"jump_text\":\"\",\"jump_uri\":\"\",\"modules\":null,\"jump_text_2\":\"\",\"jump_uri_2\":\"\",\"jump_text_3\":\"\",\"jump_uri_3\":\"\",\"notifier\":null,\"jump_uri_config\":{\"all_uri\":\"https://member.bilibili.com/york/flow-reward?navhide=1\\u0026from=msgrecall\",\"text\":\"\"},\"jump_uri_2_config\":{\"text\":\"\"},\"jump_uri_3_config\":{\"text\":\"\"},\"biz_content\":null}",
354 "msg_seqno": 1285290404823041,
355 "timestamp": 1712305278,
356 "at_uids": null,
357 "msg_key": 7354295169819585966,
358 "msg_status": 0,
359 "notify_code": "2091_253",
360 "new_face_version": 1,
361 "msg_source": 6
362 },
363 "group_type": 0,
364 "can_fold": 0,
365 "status": 0,
366 "max_seqno": 1285290404823041,
367 "new_push_msg": 1,
368 "setting": 0,
369 "is_guardian": 0,
370 "is_intercept": 0,
371 "is_trust": 0,
372 "system_msg_type": 7,
373 "account_info": {
374 "name": "UP主小助手",
375 "pic_url": "https://message.biliimg.com/bfs/im/489a63efadfb202366c2f88853d2217b5ddc7a13.png"
376 },
377 "live_status": 0,
378 "biz_msg_unread_count": 0,
379 "user_label": null
380 },
381 {
382 "talker_id": 293793435,
383 "session_type": 1,
384 "at_seqno": 0,
385 "top_ts": 0,
386 "group_name": "",
387 "group_cover": "",
388 "is_follow": 1,
389 "is_dnd": 0,
390 "ack_seqno": 1236306587877408,
391 "ack_ts": 1709536984481314,
392 "session_ts": 1709385615744065,
393 "unread_count": 0,
394 "last_msg": {
395 "sender_uid": 293793435,
396 "receiver_type": 1,
397 "receiver_id": 425503913,
398 "msg_type": 11,
399 "content": "{\"title\":\"OHHHHHH家人们,我分数终于破w了!紫框了这下确实不好意思说自己是只打红谱的萌新了\",\"times\":14,\"cover\":\"http://i0.hdslb.com/bfs/archive/8821c03ab27a0bcf2bf32af814e758ab17a1e27e.png\",\"rid\":1951316064,\"type_\":8,\"desc\":\"OHHHHHH家人们,我分数终于破w了!紫框了这下确实不好意思说自己是只打红谱的萌新了\",\"bvid\":\"BV1zC411p7JN\",\"view\":452,\"danmaku\":0,\"pub_date\":1709385603,\"attach_msg\":null}",
400 "msg_seqno": 1236306587877408,
401 "timestamp": 1709385615,
402 "at_uids": null,
403 "msg_key": 7341755312943193481,
404 "msg_status": 0,
405 "notify_code": "",
406 "new_face_version": 1,
407 "msg_source": 6
408 },
409 "group_type": 0,
410 "can_fold": 0,
411 "status": 0,
412 "max_seqno": 1236306587877408,
413 "new_push_msg": 0,
414 "setting": 0,
415 "is_guardian": 0,
416 "is_intercept": 0,
417 "is_trust": 0,
418 "system_msg_type": 0,
419 "live_status": 0,
420 "biz_msg_unread_count": 0,
421 "user_label": null
422 },
423 {
424 "talker_id": 221082140,
425 "session_type": 2,
426 "at_seqno": 0,
427 "top_ts": 0,
428 "group_name": "社会易姐QwQ的应援团",
429 "group_cover": "http://i0.hdslb.com/bfs/face/aebb2639a0d47f2ce1fec0631f412eaf53d4a0be.jpg",
430 "is_follow": 0,
431 "is_dnd": 0,
432 "ack_seqno": 20,
433 "ack_ts": 1695011620552332,
434 "session_ts": 1693626568439784,
435 "unread_count": 0,
436 "last_msg": {
437 "sender_uid": 0,
438 "receiver_type": 2,
439 "receiver_id": 221082140,
440 "msg_type": 306,
441 "content": "{\"group_id\":221082140,\"content\":\"欢迎罗板栗入群\"}",
442 "msg_seqno": 20,
443 "timestamp": 1693626568,
444 "at_uids": null,
445 "msg_key": 7274070721607234847,
446 "msg_status": 0,
447 "notify_code": "",
448 "msg_source": 13
449 },
450 "group_type": 0,
451 "can_fold": 0,
452 "status": 0,
453 "max_seqno": 20,
454 "new_push_msg": 0,
455 "setting": 0,
456 "is_guardian": 0,
457 "is_intercept": 0,
458 "is_trust": 0,
459 "system_msg_type": 0,
460 "live_status": 0,
461 "biz_msg_unread_count": 0,
462 "user_label": null
463 }
464 ],
465 "has_more": 0,
466 "anti_disturb_cleaning": false,
467 "is_address_list_empty": 0,
468 "show_level": false
469 }
470 }
471 ```
472
473 </details>
474
162 475 ## 私信消息记录
163 476
164 477 > https://api.vc.bilibili.com/svr_sync/v1/svr_sync/fetch_session_msgs
165 478
166 479 *请求方式:GET*
167 480
168 此接口有设计缺陷,可以获取已经撤回的私信内容
169
170 481 认证方式:Cookie(SESSDATA)
171 482
483 此接口有设计缺陷,可以获取已经撤回的私信内容
484
172 485 **url参数:**
173 486
174 487 | 参数名 | 类型 | 内容 | 必要性 | 备注 |
@@ -198,7 +511,7 @@ curl 'https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread' \
198 511
199 512 | 字段 | 类型 | 内容 | 备注 |
200 513 | --------- | ----- | ------------------------------ | ----------------------------------- |
201 | messages | 有私信时:array<br />无私信时:null | 私信列表 | 按发送时间顺序反向排序 |
514 | messages | 有私信时:array<br />无私信时:null | 私信列表 | 按发送时间顺序逆向排序 |
202 515 | has_more | num | 是否有更多私信 | |
203 516 | min_seqno | num | 所有消息中最小的序列号(最早) | 若无私信则为 `18446744073709551615` |
204 517 | max_seqno | num | 所有消息中最大的序列号(最晚) | 若无私信则为 `0` |
Modified docs/message/private_msg_content.md +2 -2
@@ -553,7 +553,7 @@
553 553
554 554 **示例:**
555 555
556 `社会易姐QwQ的应援团` 开通的消息
556 `社会易姐QwQ的应援团` 开通的消息(`msg_type=305`)
557 557
558 558 ```json
559 559 {
@@ -562,7 +562,7 @@
562 562 }
563 563 ```
564 564
565 成员 `wuziqian211` 进入 `社会易姐QwQ的应援团` 的消息
565 成员 `wuziqian211` 进入 `社会易姐QwQ的应援团` 的消息(`msg_type=306`)
566 566
567 567 ```json
568 568 {