add more docs

This commit is contained in:
wuziqian211 2024-04-01 01:14:39 +08:00
parent 444fc8aa0c
commit 8539abd12f
2 changed files with 236 additions and 18 deletions

View File

@ -4,7 +4,42 @@
### 会话对象
待补充……
| 字段 | 类型 | 内容 | 备注 |
| -------------------- | ---- | -------------- | -------------------------------------------------------------- |
| talker_id | num | 聊天对象的id | `session_type``1` 时表示用户 mid`2` 时表示粉丝团 id |
| session_type | num | 聊天对象的类型 | 1用户<br />2粉丝团 |
| at_seqno | num | 最近一次未读at自己的消息的序列号 | 在粉丝团时有效若没有未读的at自己的消息则为`0` |
| top_ts | num | | |
| group_name | str | 粉丝团名称 | 在粉丝团时有效 |
| group_cover | str | 粉丝团头像 | 在粉丝团时有效 |
| is_follow | num | 是否已关注对方 | 在用户会话中有效 |
| is_dnd | num | 是否设置了免打扰 | |
| ack_seqno | num | 最近一次已读的消息序列号 | |
| ack_ts | num | 最近一次已读时间 | 微秒级时间戳|
| session_ts | num | 会话时间 | 微秒级时间戳|
| unread_count | num | 未读消息数 | |
| last_msg | obj | 最近的一条消息 | 详见[私信主体对象](#私信主体对象) |
| group_type | num | 粉丝团类型 | 在粉丝团时有效<br />0应援团<br />2官方群 |
| can_fold | num | | |
| status | num | 会话状态 | |
| max_seqno | num | 最近一条消息的序列号 | |
| new_push_msg | num | 是否有新推送的消息 | |
| setting | num | | |
| is_guardian | num | | |
| is_intercept | num | 是否被拦截 | |
| is_trust | num | 是否不拦截此会话 | |
| system_msg_type | num | 系统消息类型 | 0不是系统消息<br />7UP主小助手 |
| account_info | obj | 会话信息 | 仅在系统消息中出现 |
| live_status | num | 是否正在直播 | |
| biz_msg_unread_count | num | 未读推送消息数 | |
| user_label | null | | |
`account_info`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---- |
| name | str | 会话名称 | |
| pic_url | str | 会话头像 | |
### 私信主体对象
@ -14,7 +49,7 @@
| ---------------- | ---- | -------------- | -------------------------------------------------------------- |
| sender_uid | num | 发送者mid | |
| receiver_type | num | 接收者类型 | 1用户<br />2粉丝团 |
| receiver_id | num | 接收者id | `receiver_type``1` 时表示用户 mid`2` 时表示应援团 id |
| receiver_id | num | 接收者id | `receiver_type``1` 时表示用户 mid`2` 时表示粉丝团 id |
| msg_type | num | 消息类型 | 详见[私信消息类型、内容说明](private_msg_content.md) |
| content | str | 消息内容 | [私信内容对象](private_msg_content.md)经过 JSON 序列化后的文本 |
| msg_seqno | num | 消息序列号 | 按照时间顺序从小到大 |
@ -52,7 +87,7 @@
| 10 | 自动回复 - 关键词回复 | |
| 11 | 自动回复 - 大航海上船回复 | |
| 12 | 自动推送 - UP 主赠言 | 在以前稿件的自动推送与其附带的 UP 主赠言是 2 条不同的私信(其中 UP 主赠言的消息来源代码为 12现在 UP 主赠言已被合并成为稿件自动推送的一部分 |
| 13 | 应援团系统提示 | 如:应援团中的提示信息“欢迎xxx入群” |
| 13 | 粉丝团系统提示 | 如:粉丝团中的提示信息“欢迎xxx入群” |
| 16 | | **作用尚不明确** |
| 17 | 互相关注 | 互相关注时自动发送的私信“我们已互相关注,开始聊天吧~” |
| 18 | 系统提示 | 如“对方主动回复或关注你前最多发送1条消息” |
@ -138,7 +173,7 @@ curl 'https://api.vc.bilibili.com/session_svr/v1/session_svr/single_unread' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| ----------------- | ---- | ---------------- | ------ | ------------------------------------------------------ |
| talker_id | num | 聊天对象的id | 必要 | `session_type``1` 时表示用户 mid`2` 时表示应援团 id |
| talker_id | num | 聊天对象的id | 必要 | `session_type``1` 时表示用户 mid`2` 时表示粉丝团 id |
| session_type | num | 聊天对象的类型 | 必要 | 1用户<br />2粉丝团 |
| size | num | 返回消息数量 | 非必要 | 默认为 20最大为 200 |
| begin_seqno | num | 开始的序列号 | 非必要 | 提供本参数时返回以本序列号开始(不包括本序列号)的消息 |
@ -284,7 +319,7 @@ curl -G 'https://api.vc.bilibili.com/svr_sync/v1/svr_sync/fetch_session_msgs' \
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
| --------------------- | ---- | ------------------------ | ------ | ---------------------------------------------------- |
| msg[sender_uid] | num | 发送者mid | 必要 | 必须为自己的 mid |
| msg[receiver_id] | num | 接收者id | 必要 | `msg[receiver_type]``1` 时表示用户 mid`2` 时表示应援团 id |
| msg[receiver_id] | num | 接收者id | 必要 | `msg[receiver_type]``1` 时表示用户 mid`2` 时表示粉丝团 id |
| msg[receiver_type] | num | 接收者类型 | 必要 | 1用户<br />2粉丝团 |
| msg[msg_type] | num | 消息类型 | 必要 | 详见[私信消息类型、内容说明](private_msg_content.md) |
| msg[msg_status] | num | 消息状态 | 非必要 | 恒为 `0` |

View File

@ -28,6 +28,8 @@
在发送私信时,请确保下面的对象合法且 `url` 项的值为 B 站的图床 url否则会报 21037 `图片格式不合法,不要调戏接口啦` 错误
建议设置 `height``width` 属性,否则可能会导致消息显示异常
根对象:
| 字段 | 类型 | 内容 | 备注 |
@ -58,7 +60,7 @@
内容为目标私信的 `msg_key`
请确保目标私信存在、在撤回有效期120 秒)里,且与发送的私信在同一会话内;成功发送此私信后,目标私信的 `msg_status` 会变成 `1`
请确保目标私信存在、在撤回有效期120 秒)里,且与发送的私信在同一会话内;成功发送此私信后,目标私信的 `msg_status` 会变成 `1`(在前端会显示目标消息被撤回)
**示例:**
@ -68,7 +70,7 @@
7345551441311046575
```
若发送成功,则私信 A 会被撤回,并且其 `msg_status` 也会变成 `1`
若发送成功,则私信 A 会被撤回(在前端显示该消息被撤回),并且其 `msg_status` 也会变成 `1`
## 自定义表情消息(`msg_type=6`
@ -83,7 +85,7 @@
| author | str | 分享内容作者 | 此项不实时更新,在发送私信时设置(非必要) |
| headline | str | 分享内容主标题 | 比 `title` 更突出;此项不实时更新,在发送私信时设置(非必要) |
| id | num | 分享内容id | |
| 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番剧 |
| 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番剧 |
| source_desc | str | 分享内容类型说明 | 仅当 `source` 值为 `16` 时有此项 |
| thumb | str | 分享内容封面 | 此项不实时更新,在发送私信时设置 |
| title | str | 分享内容标题 | 此项不实时更新,在发送私信时设置 |
@ -92,6 +94,8 @@
**示例:**
分享 UP 主 “社会易姐QwQ” 的视频 av246551172
```json
{
"author": "社会易姐QwQ",
@ -106,6 +110,8 @@
### 小程序消息(`msg_type=9`
由于 B 站并没有对外公开小程序,此消息类型不常用
根对象:
| 字段 | 类型 | 内容 | 备注 |
@ -121,6 +127,8 @@
**示例:**
分享 “主站测试专用小程序”
```json
{
"avatar": "http://i0.hdslb.com/bfs/mall/mall/7b/dd/7bdd072290de017593791b52e937ca29.png",
@ -138,27 +146,80 @@
此类型消息仅可接收,不可直接发送
**按钮显示逻辑说明:**
- **按钮的url**首先尝试读取 `jump_uri_*_config` 对象中表示当前设备类型的 url`web_uri`、`android_uri` 等);若为空值,则尝试读取 `jump_uri_*_config` 对象中 `all_uri` 的值;若仍为空值,则读取根对象中 `jump_uri_*` 的值;若仍为空值,则不显示该按钮(无论 `jump_text_*``jump_uri_*_config` 中的 `text` 是否为非空值)
- **按钮提示文字:**若按钮是可见的,则先尝试读取 `jump_uri_*_config` 对象中 `text` 的值;若为空值,则读取根对象中 `jump_text_*` 的值;若仍为空值,则提示文字为 `查看详情`
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------------- | ----- | ------------- | ------------------------- |
| title | str | 通知标题 | |
| text | str | 通知内容 | |
| jump_text | str | 按钮1提示文字 | |
| jump_uri | str | 按钮1跳转链接 | |
| modules | array | 详细信息 | |
| jump_text_2 | str | 按钮2提示文字 | |
| jump_uri_2 | str | 按钮2跳转链接 | |
| jump_text_3 | str | 按钮3提示文字 | |
| jump_uri_3 | str | 按钮3跳转链接 | |
| notifier | obj | 发送者信息 | |
| jump_text | str | 按钮1提示文字 | 若按钮1不存在则为空若按钮1存在此项也可能为空此时前端显示文字为 `查看详情` |
| jump_uri | str | 按钮1跳转链接 | 若按钮1不存在则为空 |
| modules | 有效时:array<br />无效时null | 详细信息 | |
| jump_text_2 | str | 按钮2提示文字 | 若按钮2不存在则为空若按钮2存在此项也可能为空此时前端显示文字为 `查看详情` |
| jump_uri_2 | str | 按钮2跳转链接 | 若按钮2不存在则为空 |
| jump_text_3 | str | 按钮3提示文字 | 若按钮3不存在则为空若按钮3存在此项也可能为空此时前端显示文字为 `查看详情` |
| jump_uri_3 | str | 按钮3跳转链接 | 若按钮3不存在则为空 |
| notifier | 有效时obj<br />无效时null | 发送者信息 | |
| jump_uri_config | obj | 按钮1配置 | |
| jump_uri_2_config | obj | 按钮2配置 | |
| jump_uri_3_config | obj | 按钮3配置 | |
| biz_content | obj | 扩展信息 | |
| biz_content | 有效时obj<br />无效时null | 扩展信息 | |
`modules`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | ------------- | ---- |
| 0 | obj | 详细信息1 | |
| n | obj | 详细信息(n+1) | |
| …… | obj | …… | …… |
`modules`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| ------ | ---- | ---- | ---- |
| title | str | 标题 | |
| detail | str | 内容 | |
`notifier`对象:
| 字段 | 类型 | 内容 | 备注 |
| ---------- | ---- | ---------- | ------ |
| avatar_url | str | 发送者头像 | |
| nickname | str | 发送者名称 | |
| jump_url | str | 发送者链接 | 可为空 |
`jump_uri_config`、`jump_uri_2_config`、`jump_uri_3_config`对象:
| 字段 | 类型 | 内容 | 备注 |
| ----------- | ---- | ----------------------- | -------------------- |
| all_uri | str | 所有设备的跳转链接 | 若按钮不存在则无此项 |
| android_uri | str | Android客户端的跳转链接 | 若按钮不存在则无此项 |
| iphone_uri | str | iPhone客户端的跳转链接 | 若按钮不存在则无此项 |
| ipad_uri | str | iPad客户端的跳转链接 | 若按钮不存在则无此项 |
| web_uri | str | 网页上的跳转链接 | 若按钮不存在则无此项 |
| text | str | 按钮提示文字 | 若按钮不存在则为空 |
`biz_content`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------ | ---- | ----------- | ---------------- |
| cover | str | 封面url | |
| backup_cover | str | 备用封面url | |
| refresh_type | num | | **作用尚不明确** |
| biz_type | num | | **作用尚不明确** |
| biz_id1 | str | | **作用尚不明确** |
| biz_id2 | str | | **作用尚不明确** |
| biz_status | num | | **作用尚不明确** |
**示例:**
直播开始提醒
```json
{
"title": "直播开始提醒",
@ -222,8 +283,17 @@
| pub_date | num | 视频发布时间 | 秒级时间戳,若视频失效则为 `0` |
| attach_msg | 有效时obj<br />无效时null | UP主赠言 | |
`attach_msg`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------------------------------- |
| id | num | 赠言id | |
| content | str | 赠言内容 | 会自动加上 `UP主赠言` 前缀,可能包含私信表情 |
**示例:**
推送视频 av740817783/BV1Dk4y1E7MZ
```json
{
"title": "【2023嵌入式大赛】浅浅测试一下龙芯开发板",
@ -260,8 +330,17 @@
| attach_msg | 有效时obj<br />无效时null | UP主赠言 | |
| pub_date | num | 专栏发布时间 | 秒级时间戳,若专栏失效则为 `0` |
`attach_msg`对象:
| 字段 | 类型 | 内容 | 备注 |
| ------- | ---- | -------- | ---------------------------------------------- |
| id | num | 赠言id | |
| content | str | 赠言内容 | 会自动加上 `UP主赠言` 前缀,可能包含私信表情 |
**示例:**
推送专栏 cv18275013
```json
{
"rid": 18275013,
@ -303,8 +382,71 @@
}
```
### 分享其他内容消息(`msg_type=14`
常见于分享直播
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------ | ---- | ---------------- | -------------------------------- |
| author | str | 分享内容作者 | 此项不实时更新,在发送私信时设置 |
| cover | str | 分享内容封面 | 此项不实时更新,在发送私信时设置 |
| desc | str | 分享内容简介 | 此项不实时更新,在发送私信时设置 |
| source | str | 分享内容类型说明 | 常见的值为 `直播` |
| title | str | 分享内容标题 | 此项不实时更新,在发送私信时设置 |
| url | str | 分享内容url | |
**示例:**
分享直播 ID 21738461
```json
{
"author": "哔哩哔哩晚会",
"cover": "https://i1.hdslb.com/bfs/face/1b593d28fcd0cf63837c3ea80ac96d01bb85ec3b.jpg",
"desc": "主播:哔哩哔哩晚会 https://live.bilibili.com/21738461",
"source": "直播",
"title": "2023最美的夜 bilibili晚会",
"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"
}
```
### 被关注时的自动推送消息(`msg_type=16`
一般仅在开启了 B 站的 “被关注回复” 功能与勾选 “被关注后,向关注我的人推送我的往期作品” 选项(仅部分用户会显示此选项)时才会发送此类型消息,紧接在自动发送的文字消息其后
根对象:
| 字段 | 类型 | 内容 | 备注 |
| ------------- | ----- | ---------------- | ------------------------------------ |
| main_title | str | 主标题 | 一般为 `更多宝藏内容` |
| reply_content | str | 自动回复文字内容 | 仅显示在聊天列表,在私信内容中不显示 |
| sub_cards | array | 推送的作品列表 | 一般为3个 |
`sub_cards`数组:
| 项 | 类型 | 内容 | 备注 |
| ---- | ---- | --------- | ---- |
| 0 | obj | 作品1 | |
| n | obj | 作品(n+1) | |
| …… | obj | …… | …… |
`sub_cards`数组中的对象:
| 字段 | 类型 | 内容 | 备注 |
| --------- | ---- | ------------ | -------------------------------------------------------------- |
| card_id | num | 作品id | 当作品为视频时表示AV号<br />当作品为专栏时表示CV号 |
| card_type | num | 作品类型 | 1视频 |
| jump_url | str | 作品链接 | |
| cover_url | str | 作品封面url | |
| field1 | str | 作品标题 | |
| field2 | str | 作品发布时间 | 格式:`YYYY-MM-DD` |
| field3 | str | 字段3 | 当作品为视频时:表示作品播放量<br />当作品为专栏时:表示阅读量 |
| icon3 | num | 图标3类型 | 1播放量 |
| field4 | str | 字段4 | 当作品为视频时:表示作品弹幕数<br />当作品为专栏时:表示评论数 |
| icon4 | num | 图标4类型 | 3弹幕数 |
**示例:**
```json
@ -350,7 +492,7 @@
### 系统提示消息(`msg_type=18`
此类型消息仅可接收,不可直接发送
此类型消息仅可接收,不可直接发送;由系统自动发送,但仅自己可见
根对象:
@ -376,6 +518,8 @@
**示例:**
若自己与对方从未聊过天,且对方未关注自己,则会有系统提示
```json
{
"content": "[{\"text\":\"对方主动回复或关注你前最多发送1条消息\",\"color_day\":\"#9499A0\",\"color_nig\":\"#9499A0\"}]"
@ -386,4 +530,43 @@
以下消息类型仅常见于粉丝团中的系统消息(`receiver_type` 为 `2``sender_uid``0`
### 成员入群消息(`msg_type=301`
### 成员退群消息(`msg_type=302`
### 粉丝团冻结消息(`msg_type=303`
### 粉丝团解散消息(`msg_type=304`
### 粉丝团开通消息(`msg_type=305`
### 成员入群消息(`msg_type=306`
以上6种消息类型均为以下数据类型结构
根对象:
| 字段 | 类型 | 内容 | 备注 |
| -------- | ---- | -------- | ---- |
| group_id | num | 粉丝团id | |
| content | str | 提示文字 | |
**示例:**
`社会易姐QwQ的应援团` 开通的消息
```json
{
"group_id": 221082140,
"content": "社会易姐QwQ的应援团开通啦 (>▽<)"
}
```
成员 `wuziqian211` 进入 `社会易姐QwQ的应援团` 的消息
```json
{
"group_id": 221082140,
"content": "欢迎wuziqian211入群"
}
```