mirror of
https://github.com/SocialSisterYi/bilibili-API-collect.git
synced 2024-12-25 20:10:06 +08:00
feat: 添加消息中心接口相关说明 (#983)
* Update charge_list.md * Update charge_msg.md * Update relation.md * Update relation.md * update * Update monthly.md * Update monthly.md * update * Update charge_list.md * Update relation.md * Update monthly.md * Update README.md * Update charge_list.md * update * Update relation.md * Update relation.md * Update relation.md * Update info.md * update * update * rename * update docs * update * update * update * update * add more docs * update docs * 更新 private_msg.md * Update Layout.vue * Update README.md * 添加 #1008 相关说明 * Update README.md * Update CONTRIBUTING.md * Update CONTRIBUTING.md * Update private_msg.md * fix: typo * update docs * feat: #1033 * update docs * fix: typo * Update private_msg.md * feat: add get users info * 将 #983 中对此文件的更改合并到此 PR 中 * fix: typo * update docs * Update private_msg_content.md * Update info.md * 更新 danmaku_view_proto.md * 更新 action.md * 更新 info.md * 更新 recommend.md * 更新 readme.md * feat: 规范化文档 * Update private_msg_content.md * update docs * update docs * update docs * Update info.md * update docs * fix duplicate content
This commit is contained in:
parent
1e24c6b188
commit
41d73f1a20
146
CONTRIBUTING.md
146
CONTRIBUTING.md
@ -1,35 +1,41 @@
|
||||
# bilibili-API-collect
|
||||
# 贡献指南
|
||||
|
||||
欢迎来到 bilibili-API-collect 社区贡献指南,本文主要面向需要进行提交贡献文档内容的用户。
|
||||
|
||||
## 总则
|
||||
|
||||
[bilibili-API-collect](https://github.com/SocialSisterYi/bilibili-API-collect) 项目(简称 BAC 或 b-a-c)是一个仅用于学习研究、社区开源、公益性质的 [B站(哔哩哔哩)](https://www.bilibili.com/) API(应用程序接口) 文档,使用 [CC-BY-NC 4.0 协议](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE) 开源,它将无差别收集整理相关的**主站业务接口**。
|
||||
[bilibili-API-collect](https://github.com/SocialSisterYi/bilibili-API-collect) 项目(简称 BAC 或 b-a-c)是一个仅用于学习研究、社区开源、公益性质的 [B 站(哔哩哔哩)](https://www.bilibili.com/)API(应用程序接口)文档,使用 [CC-BY-NC 4.0 协议](https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE)开源,它将无差别收集整理相关的**主站业务接口**。
|
||||
|
||||
该项目使用 [MarkDown](https://zh.wikipedia.org/zh-cn/Markdown) 语法进行文档书写,按照业务类型及功能以 **路径** + **文件** 形式索引,任何用户都可通过 Pull Request 提供自己分析出的接口地址与使用说明。
|
||||
该项目使用 [MarkDown](https://zh.wikipedia.org/zh-cn/Markdown) 语法进行文档书写,按照业务类型及功能以**路径**+**文件**形式索引,任何用户都可通过 Issue、Pull Request 与 Discussion 提供自己分析出的接口地址与使用说明。
|
||||
|
||||
本项目收集的接口类型包括但不限于 REST API、gRPC、WebSocket,文档内统一优先使用安全套接字协议,如`https`、`securityRpc`、`wss`。
|
||||
本项目收集的接口类型包括但不限于 REST API、gRPC、WebSocket,文档内统一优先使用安全套接字协议,如 `https`、`securityRpc`、`wss`。
|
||||
|
||||
## Issue与社群讨论
|
||||
## Issue、Discussion 与社群讨论
|
||||
|
||||
对文档内容存在**不理解**之处、以及发现文档内容有所**缺失**或**错误**,可直接提出,强烈建议以发 **Issue** 的形式参与用户反馈,并希望关于本项目的各种交流都是**公开进行**的,因为这样才可以保证关键信息的一致性。
|
||||
对文档内容存在**不理解**之处、以及发现文档内容有所**缺失**或**错误**,可直接提出,强烈建议以提交 **Issue** 的形式添加 / 补充 / 更新文档中的说明,以发起 **Discussion** 的形式提出问题、代码用例、情报分享,并希望关于本项目的各种交流都是**公开进行**的,因为这样才可以保证关键信息的一致性。
|
||||
|
||||
由于本项目属于文档型项目,故不设置 Issue 模板,同时允许中英文标题,但提交 Issue 请遵守以下原则:
|
||||
提交 Issue 请遵守以下原则:
|
||||
|
||||
1. 标题言简意骇,说明欲提出的问题要点,如`如何通过xx接口获取yy`、`xx接口地址已失效`、`关于xx字段意义的探讨`、` 建议将xx加入yy分类`等标题;切勿使用表意含糊不清或索取性的标题,如`怎么解决风控`、`补充`、`搜索的接口是什么`、`好兄弟有没有投稿的接口`等标题
|
||||
2. Issue 正文应对问题进行尽可能详细的描述,展开并聚焦有关的信息,例如:“在前端页面某地址 / APP 某界面会访问某 API(标明地址),它的某参数与文档中不符(标明文档地址)”
|
||||
3. 提出问题时注意 [提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md) 并且 [别像弱智一样提问](https://github.com/tangx/Stop-Ask-Questions-The-Stupid-Ways)
|
||||
1. 标题需要点明 API 的用处,如 `[新增请求] 新增 xx 接口`、`[更新请求] xx 接口地址已失效`、`[更新请求] xx 接口的参数有变化`,切勿仅填写 `补充`、`修复` 等标题
|
||||
2. 正文请按照 Issue 模板进行填写,标明 API 来源(Web、Android、iOS、TV 等)、API 类型(REST、gRPC、WebSocket 等)、API 地址
|
||||
3. 详情描述需要提供该 API 的使用场景、请求及响应字段等,可附上原始抓包记录;在更新时还需指出原文档中与最新 API 行为不符之处,并附上已知的最新改动。例如:“在前端页面某地址 / APP 某界面访问某 API(标明地址),它的某参数与文档中不符(标明文档地址)”
|
||||
|
||||
发起 Discussion 请遵守以下原则:
|
||||
|
||||
1. 标题言简意骇,说明欲提出的问题要点,如 `如何通过 xx 接口获取 yy`、`关于 xx 字段意义的探讨`、`建议将 xx 加入 yy 分类` 等标题;切勿使用表意含糊不清或索取性的标题,如 `怎么解决风控`、`搜索的接口是什么`、`好兄弟有没有投稿的接口` 等标题
|
||||
2. Discussion 正文应对遇到的问题进行尽可能详细的描述,展开并聚焦有关的信息,例如: “按照文档中某位置的说明进行了某操作,为什么无法获得预期结果”、“请问某 API 的某字段的具体含义是什么”
|
||||
3. 提出问题时注意[提问的智慧](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md)并且[别像弱智一样提问](https://github.com/tangx/Stop-Ask-Questions-The-Stupid-Ways)
|
||||
|
||||
同时,您还可以通过加入社群的方式参与讨论
|
||||
|
||||
- QQ 交流群:[邀请链接](https://jq.qq.com/?_wv=1027&k=s1M0LCcu)
|
||||
- QQ 交流群:[邀请链接](https://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ympvb3LAPT-Ulu3ezhGqbkJ8zXMKImOX&authKey=z1KdkOdKO3wytN43m9K6On9nBtnDL4pAoD6VQHCipFBb9TasNDKuDHCmOE6TF3uc&noverify=0&group_code=191187164)
|
||||
- Telegram 交流群:[@bilibili_API_collect_community](https://t.me/bilibili_API_collect_community)
|
||||
|
||||
::: tip ✅提示
|
||||
|
||||
QQ 交流群为综合技术交流群(兼 Owner 的粉丝群),可交流探讨任何技术,包括但不限于 [BAC 项目](https://github.com/SocialSisterYi/bilibili-API-collect)
|
||||
|
||||
Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bilibili-API-collect) 的 Github Bot 接收,也可以进行项目相关的讨论,但不建议在此讨论交流其他内容(公开群)
|
||||
Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bilibili-API-collect)的 Github Bot 接收,也可以进行项目相关的讨论,但不建议在此讨论交流其他内容(公开群)
|
||||
|
||||
:::
|
||||
|
||||
@ -37,13 +43,13 @@ Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bi
|
||||
|
||||
群内讨论同样需要遵守**公开交流**的原则,以及群内会定期清理不活跃成员。
|
||||
|
||||
**QQ 交流群** 的加群问题答案可以去 [Owner 的主页](https://github.com/SocialSisterYi) Contact 部分找到,如果您填写“我不知道,从 Github 来的“那么管理员将有理由禁止您进群讨论!
|
||||
**QQ 交流群**的加群问题答案可以去 [Owner 的主页](https://github.com/SocialSisterYi) Contact 部分找到,如果您填写“我不知道,从 Github 来的”那么管理员将有理由禁止您进群讨论!
|
||||
|
||||
:::
|
||||
|
||||
::: danger 🈲禁止
|
||||
|
||||
项目 Issue 及其相关社群中 **禁止** 询问讨论 风控解除、爬虫(采集)、破解、漏洞利用、买卖代码和账号 相关内容,抵制基于本项目进行的一切黑产行为!
|
||||
项目 Issue 及其相关社群中**禁止**询问讨论 风控解除、爬虫(采集)、破解、漏洞利用、买卖代码和账号 相关内容,抵制基于本项目进行的一切黑产行为!
|
||||
|
||||
:::
|
||||
|
||||
@ -51,28 +57,29 @@ Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bi
|
||||
|
||||
### 目录
|
||||
|
||||
文档目录以 **Markdown无序列表** 语法写在 [README.md](README.md) 中,使用缩进标识文档的层级,如`视频`下存在`基本信息`、`快照`、`推荐`等子分类,使用 **Markdown 复选框** 语法该标注文档是否编写完成
|
||||
文档目录以 **Markdown 无序列表**语法写在 [README.md](README.md) 中,使用缩进标识文档的层级,如 `视频` 下存在 `基本信息`、`快照`、`视频推荐`、`TAG` 等子分类,使用 **Markdown 复选框**语法该标注文档是否编写完成
|
||||
|
||||
```markdown
|
||||
- [x] 视频
|
||||
- [ ] 视频
|
||||
- [x] 基本信息
|
||||
- [x] 快照
|
||||
- [x] 推荐
|
||||
- [x] 视频推荐
|
||||
- [ ] TAG
|
||||
```
|
||||
|
||||
### 路径
|
||||
|
||||
路径层级应当与文档目录一致,以文件夹的形式存放在项目中的`/docs`路径下,命名统一使用英文,如`video`、`danmaku`、`comment`
|
||||
路径层级应当与文档目录一致,以文件夹的形式存放在项目中的 `/docs` 路径下,命名统一使用英文小写,如 `video`、`danmaku`、`comment`
|
||||
|
||||
二级、三级路径应当存在二级三级目录,以`README.md`的形式
|
||||
二级、三级路径应当存在二级三级目录,可选添加 `README.md` 以描述该子目录
|
||||
|
||||
### 文件
|
||||
|
||||
各个子接口集整理为 md 文件,命名统一使用英文,如`info.md`、`action.md`、`list.md`
|
||||
各个子接口集整理为 MarkDown(md)文件,命名统一使用英文小写,如 `info.md`、`action.md`、`list.md`
|
||||
|
||||
文档文件中用于存放相关的接口的说明,如`video/`下的`info.md`,存在`查询视频基本信息`、`查询视频简介`、`查询视频分P列表`等内容
|
||||
文档文件中用于存放相关的接口的说明,如 `video/` 下的 `info.md`,存在 `查询视频基本信息`、`查询视频简介`、`查询视频分P列表` 等内容
|
||||
|
||||
## Markdown文档内容格式
|
||||
## Markdown 文档内容格式
|
||||
|
||||
文档使用 [Vuepress](https://vuepress.vuejs.org/) 生成,可以使用 [Vuepress md 扩展语法](https://vuepress.vuejs.org/guide/markdown.html)编写
|
||||
|
||||
@ -80,25 +87,25 @@ Telegram 交流群主要用作 [BAC 项目](https://github.com/SocialSisterYi/bi
|
||||
|
||||
### 头部
|
||||
|
||||
文档首行为 **一级标签** 格式标题
|
||||
文档首行为**一级标签**格式标题,如 `# 用户基本信息`
|
||||
|
||||
**文档头部不再需要手写索引**
|
||||
**文档头部不再需要手写索引**,索引由 Vuepress 自动生成
|
||||
|
||||
### 接口说明
|
||||
|
||||
文档中可存在多个接口说明,应当遵守同一范式,依次排列在文档中
|
||||
|
||||
接口说明分为`标题`、`地址`、`说明`、`请求参数`、`响应正文`、`示例`这些部分
|
||||
接口说明分为 `标题`、`地址`、`说明`、`请求参数`、`响应正文`、`示例` 这些部分
|
||||
|
||||
接口标题为 **二级以下** 的标签,接口地址使用 **引用** 语法,地址只保留 REST API 路径,不应携带 query 等内容
|
||||
接口标题为**二级以下**的标签,接口地址使用**引用**语法,地址只保留 REST API 路径,不应携带 query 等内容
|
||||
|
||||
接口地址下方需要注明接口的请求方式,如`GET`、`POST`、`PUT`等,使用 **斜体** 语法
|
||||
接口地址下方需要注明接口的请求方式,如 `GET`、`POST`、`PUT` 等,使用*斜体*语法
|
||||
|
||||
若接口存在认证或鉴权,需要在说明中注明,如`Cookie(SESSDATA)`、`APP`(认证是针对用户的,鉴权是针对接口使用的
|
||||
若接口存在认证或鉴权,需要在说明中注明,如 `Cookie (SESSDATA)`、`APP`(认证是针对用户的,鉴权是针对接口使用的)
|
||||
|
||||
其他使用说明也可写在这里,如`限制游客访问的视频需要登录`
|
||||
其他使用说明也可写在这里,如 `限制游客访问的视频需要登录`
|
||||
|
||||
eg:
|
||||
e.g.:
|
||||
|
||||
```markdown
|
||||
## 获取视频详细信息_web端
|
||||
@ -107,84 +114,84 @@ eg:
|
||||
|
||||
*请求方式:GET*
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
认证方式:Cookie (SESSDATA)
|
||||
|
||||
限制游客访问的视频需要登录
|
||||
```
|
||||
|
||||
**请求参数**应在**接口说明**的下方,应注明参数类型 url 参数或 正文参数(正文参数应注明 content-type,如`application/x-www-form-urlencoded`或`multipart/form-data`),使用 **加粗** 语法
|
||||
**请求参数**应在**接口说明**的下方,应注明参数类型 url 参数或正文参数(正文参数应注明 content-type,如 `application/x-www-form-urlencoded` 或 `multipart/form-data`),使用**加粗**语法
|
||||
|
||||
对象的字段及其含义使用 **表格** 进行整理,表头统一为`参数名`、`类型`、`内容`、`必要性`、`备注`,类型为`num`、`str`、`bool`、`nums`、`strs`、`file`等,必要性为`必要`、`非必要`、`必要(可选)`等,表格内每个字段为一行
|
||||
对象的字段及其含义使用**表格**进行整理,表头统一依次为 `参数名`、`类型`、`内容`、`必要性`、`备注`,类型为 `num`、`str`、`bool`、`nums`、`strs`、`file` 等,必要性为 `必要`、`非必要`、`必要 (可选)` 等,表格内每个字段为一行
|
||||
|
||||
eg:
|
||||
e.g.:
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| ------ | ---- | --------- | ----------- | ----------------- |
|
||||
| aid | num | 稿件 avid | 必要 (可选) | avid 与 bvid 任选 |
|
||||
| bvid | str | 稿件 bvid | 必要 (可选) | avid 与 bvid 任选 |
|
||||
|
||||
**响应正文**应在**请求参数**的下方,接口响应的数据格式应标注,如`JSON回复`、`XML回复`、`Protobuf回复`,使用 **加粗** 语法
|
||||
**响应正文**应在**请求参数**的下方,接口响应的数据格式应标注,如 `JSON 回复`、`XML 回复`、`ProtoBuf 回复`,使用**加粗**语法
|
||||
|
||||
json object 或 protobuf message 应以对象的 **表格** 形式书写,表头为`根对象`或`xx中的yy对象`,若对象位于数组中为`xx数组中的对象`
|
||||
JSON Object 或 ProtoBuf Message 应以对象的**表格**形式书写,表头为 `根对象` 或 `xx 中的 yy 对象`,若对象位于数组中则为 `xx 数组中的对象`
|
||||
|
||||
表头统一为`字段`、`类型`、`内容`、`备注`,类型为 JSON / Protobuf 的标准类型
|
||||
表头统一依次为 `字段`、`类型`、`内容`、`备注`,类型为 JSON / Protobuf 的标准类型,如 `num`、`str`、`bool`、`obj`、`array`、`null` 等
|
||||
|
||||
不明确定义的字段说明在末尾添加问号,如`播放数?`;定义尚未明确的字段使用问号包于括号中占位,如`(?)`
|
||||
不明确定义的字段说明在内容的末尾添加问号,如 `播放数?`;定义尚未明确的字段使用 `(?)` 在内容中占位,并在备注中填写 `作用尚不明确`
|
||||
|
||||
多个对象及数组,使用**遍历树**的顺序进行排列
|
||||
|
||||
eg:
|
||||
e.g.:
|
||||
|
||||
`data`对象:
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------ | ---- | ----------- | -------- |
|
||||
| -------- | ---- | ----------- | ------------ |
|
||||
| bvid | str | 稿件 bvid | |
|
||||
| aid | num | 稿件 avid | |
|
||||
| videos | num | 稿件分P总数 | 默认为 1 |
|
||||
| tid | num | 分区 tid | |
|
||||
| no_cache | bool | (?) | 作用尚不明确 |
|
||||
|
||||
json array 或 protobuf repeated 类型使用数组的 **表格** 形式书写,表头统一为`项`、`类型`、`内容`、`备注`,无限长度数组表尾需要添加**省略号**
|
||||
Json Array 或 ProtoBuf Repeated 类型使用数组的**表格**形式书写,表头统一依次为 `项`、`类型`、`内容`、`备注`,无限长度数组表尾需要添加**省略号**
|
||||
|
||||
数组每项内容若与实际数据有关联,`内容`字段则可标为`(n+1)P 视频内容`这样的形式
|
||||
数组每项内容若与实际数据有关联,`内容` 字段则可标为 `(n+1)P 视频内容` 这样的形式
|
||||
|
||||
eg:
|
||||
e.g.:
|
||||
|
||||
`data`中的`pages`数组:
|
||||
`data` 中的 `pages` 数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------------- | ------------- |
|
||||
| 0 | obj | 1P 视频内容 | 无分P仅有此项 |
|
||||
| 0 | obj | 1P 视频内容 | 无分 P 仅有此项 |
|
||||
| n | obj | (n+1)P 视频内容 | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
**示例**部分位于所有**响应正文**部分下方,需要**加粗**格式,分为请求命令示例与响应体示例两部分
|
||||
|
||||
请求命令示例为一段可测试该接口的 curl 命令或 Python 脚本,使用 **代码块** 语法书写,命令应当尽可能简短、便于使人阅读
|
||||
请求命令示例为一段可测试该接口的 curl 命令或 Python 脚本,使用**代码块**语法书写,命令应当尽可能简短、便于使人阅读
|
||||
|
||||
示例命令中的认证信息应做**脱敏处理**,如 Cookie、Token、access_key 等,可替换为`xxx`占位
|
||||
示例命令中的认证信息应做**脱敏处理**,如 Cookie、Token、access_key 等,可替换为 `xxx` 占位
|
||||
|
||||
示例命令前后可以适当添加一些文字说明
|
||||
|
||||
响应体示例为一段格式化后的 JSON 或 protobuf message,使用 **代码块** 语法书写,并使用`<details>`标签进行折叠
|
||||
响应体示例为一段格式化后的 JSON 或 ProtoBuf Message,使用**代码块**语法书写,并使用 `<details>` 标签进行折叠
|
||||
|
||||
eg:
|
||||
e.g.:
|
||||
|
||||
````markdown
|
||||
**示例:**
|
||||
|
||||
获取视频`av85440373`的基本信息
|
||||
获取视频 `av85440373` 的基本信息
|
||||
|
||||
```shell
|
||||
curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
--data-urlencode 'aid=85440373'
|
||||
```
|
||||
|
||||
```html
|
||||
<details>
|
||||
<summary>查看响应示例:</summary>
|
||||
```
|
||||
|
||||
```json
|
||||
```jsonc
|
||||
{
|
||||
"code": 0,
|
||||
"message": "0",
|
||||
@ -196,37 +203,38 @@ curl -G 'https://api.bilibili.com/x/web-interface/view' \
|
||||
"tid": 28,
|
||||
"tname": "原创音乐",
|
||||
"copyright": 1,
|
||||
...
|
||||
// ...
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```html
|
||||
</details>
|
||||
```
|
||||
````
|
||||
|
||||
### 枚举值与属性位
|
||||
|
||||
接口返回或请求中若存在一些 enum 类型或二进制属性位,应当单独进行探讨,如视频的属性位`attribute`或视频清晰度`qn`
|
||||
接口返回或请求中若存在一些 enum 类型或二进制属性位,应当单独进行探讨,如视频的属性位 `attribute` 或视频清晰度 `qn`
|
||||
|
||||
这些值及其说明使用 **表格** 进行整理,表头统一为`位` / `代码` / `值`、`含义`、`备注`
|
||||
这些值及其说明使用**表格**进行整理,表头统一为 `位` / `代码` / `值`、`含义`、`备注`
|
||||
|
||||
这些枚举值或属性位的用法应附加文字说明
|
||||
|
||||
eg:
|
||||
e.g.:
|
||||
|
||||
| 值 | 含义 | 备注 |
|
||||
| ---- | ------------- | ------------------------------------------------------------ |
|
||||
| 6 | 240P 极速 | 仅 MP4 格式支持<br />仅`platform=html5`时有效 |
|
||||
| 6 | 240P 极速 | 仅 MP4 格式支持<br />仅 `platform=html5` 时有效 |
|
||||
| 16 | 360P 流畅 | |
|
||||
| 32 | 480P 清晰 | |
|
||||
| 64 | 720P 高清 | WEB 端默认值<br />B站前端需要登录才能选择,但是直接发送请求可以不登录就拿到 720P 的取流地址<br />**无 720P 时则为 720P60** |
|
||||
| 74 | 720P60 高帧率 | 登录认证 |
|
||||
| 80 | 1080P 高清 | TV 端与 APP 端默认值<br />登录认证 |
|
||||
| 64 | 720P 高清 | WEB 端默认值<br />B 站前端需要登录才能选择,但是直接发送请求可以不登录就拿到 720P 的取流地址<br />**无 720P 时则为 720P60** |
|
||||
| 74 | 720P60 高帧率 | 需要登录认证 |
|
||||
| 80 | 1080P 高清 | TV 端与 APP 端默认值<br />需要登录认证 |
|
||||
|
||||
## Proto定义格式
|
||||
## Proto 定义格式
|
||||
|
||||
proto 文件为 [Protocol Buffers](https://protobuf.dev/) 以及 [gRPC](https://grpc.io/docs/) 的数据结构体定义,多用于客户端的接口,本文档也做相关的收集
|
||||
|
||||
存放于项目的`/grpc_api`路径下,使用包名进行路径层级的组织,如
|
||||
存放于项目的 `/grpc_api` 路径下,使用包名进行路径层级的组织,如:
|
||||
|
||||
```
|
||||
/grpc_api/bilibili/main/community/reply/v1/reply.proto
|
||||
@ -234,7 +242,7 @@ proto 文件为 [Protocol Buffers](https://protobuf.dev/) 以及 [gRPC](https://
|
||||
/grpc_api/bilibili/app/view/v1/view.proto
|
||||
```
|
||||
|
||||
proto 文件内使用 **单行注释** 标注字段或对象的含义,如
|
||||
proto 文件内使用**单行注释**标注字段或对象的含义,如:
|
||||
|
||||
```protobuf
|
||||
// UP主信息
|
||||
@ -250,4 +258,6 @@ message Author {
|
||||
|
||||
## 文档提交
|
||||
|
||||
TODO
|
||||
使用 Pull Request 将修改后的文档提交到 `master` 分支,标题需写明提交的内容
|
||||
|
||||
(TODO)
|
||||
|
113
README.md
113
README.md
@ -1,41 +1,41 @@
|
||||
<p align="center">
|
||||
<img src="./assets/img/logo.png" width="250" height="200" />
|
||||
</p>
|
||||
<h1 align="center">哔哩哔哩-API收集整理</h1>
|
||||
<h1 align="center">哔哩哔哩 - API 收集整理</h1>
|
||||
<p align="center" class="shields">
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/issues" style="text-decoration:none">
|
||||
<img src="https://img.shields.io/github/issues/SocialSisterYi/bilibili-API-collect.svg" alt="GitHub issues"/>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/issues" style="text-decoration: none;">
|
||||
<img src="https://img.shields.io/github/issues/SocialSisterYi/bilibili-API-collect.svg?style=flat&color=red" alt="GitHub issues"/>
|
||||
</a>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/stargazers" style="text-decoration:none" >
|
||||
<img src="https://img.shields.io/github/stars/SocialSisterYi/bilibili-API-collect.svg" alt="GitHub stars"/>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/stargazers" style="text-decoration: none;">
|
||||
<img src="https://img.shields.io/github/stars/SocialSisterYi/bilibili-API-collect.svg?style=flat&color=yellow" alt="GitHub stars"/>
|
||||
</a>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/network" style="text-decoration:none" >
|
||||
<img src="https://img.shields.io/github/forks/SocialSisterYi/bilibili-API-collect.svg" alt="GitHub forks"/>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/network" style="text-decoration: none;">
|
||||
<img src="https://img.shields.io/github/forks/SocialSisterYi/bilibili-API-collect.svg?style=flat&color=blue" alt="GitHub forks"/>
|
||||
</a>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/actions">
|
||||
<img src="https://img.shields.io/github/actions/workflow/status/SocialSisterYi/bilibili-API-collect/vuepress-deploy.yml" />
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/actions" style="text-decoration: none;">
|
||||
<img src="https://img.shields.io/github/actions/workflow/status/SocialSisterYi/bilibili-API-collect/vuepress-deploy.yml?style=flat" alt="Build status"/>
|
||||
</a>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE" style="text-decoration:none" >
|
||||
<img src="https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg" alt="GitHub license"/>
|
||||
<a href="https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/LICENSE" style="text-decoration: none;">
|
||||
<img src="https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey.svg?style=flat" alt="GitHub license"/>
|
||||
</a>
|
||||
</p>
|
||||
<p align="center" class="trendshift">
|
||||
<a href="https://trendshift.io/repositories/3218" target="_blank">
|
||||
<img src="https://trendshift.io/api/badge/repositories/3218" alt="SocialSisterYi%2Fbilibili-API-collect | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/>
|
||||
<img src="https://trendshift.io/api/badge/repositories/3218" alt="Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/>
|
||||
</a>
|
||||
</p>
|
||||
<h3 align="center">野生API文档</h3>
|
||||
<h3 align="center">野生 API 文档</h3>
|
||||
<h3 align="center">不断更新中....</h3>
|
||||
|
||||
本项目旨在对 B站 WEB、APP、TV 等客户端中,散落在世界各地的野生 API 进行收集整理,研究使用方法并对其进行说明,运用了黑箱法、控制变量法、代码逆向分析、拆包及反编译法、网络抓包法等研究办法
|
||||
本项目旨在对 B 站 WEB、APP、TV 等客户端中,散落在世界各地的野生 API 进行收集整理,研究使用方法并对其进行说明,运用了黑箱法、控制变量法、代码逆向分析、拆包及反编译法、网络抓包法等研究办法
|
||||
|
||||
本文档探讨的对象是主站业务接口,[官方开放平台](https://openhome.bilibili.com/doc) 和 [直播开放平台](https://open-live.bilibili.com/document/) 均不属于本项目范畴,请移步
|
||||
|
||||
B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接口为 WebSocket;REST API 接口请求数据大多为 url query 表单或 JSON,返回数据大多为 JSON 或 Protobuf,强制使用 https 协议
|
||||
|
||||
📖阅读地址:[GithubPages](https://socialsisteryi.github.io/bilibili-API-collect/)
|
||||
📖阅读地址:[Github Pages](https://socialsisteryi.github.io/bilibili-API-collect/)
|
||||
|
||||
小小的 Demo:~~av583785685~~ [视频失效原因](https://shakaianee.top/archives/56/) ([Youtube备链](https://www.youtube.com/watch?v=nfF91Z6fqGk))
|
||||
小小的 Demo:~~av583785685~~ [视频失效原因](https://shakaianee.top/archives/56/) ([Youtube 备链](https://www.youtube.com/watch?v=nfF91Z6fqGk))
|
||||
|
||||
::: warning ⚠️声明
|
||||
|
||||
@ -64,7 +64,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
计划整理分类 & 目录:(文档已完结请选中 checkbox)
|
||||
|
||||
- [ ] [接口签名与验证](docs/misc/sign)
|
||||
- [x] [APP API 签名](docs/misc/sign/APP.md)(`appkey`与`sign`)
|
||||
- [x] [APP API 签名](docs/misc/sign/APP.md)(`appkey` 与 `sign`)
|
||||
- [x] [已知的 APPKey](docs/misc/sign/APPKey.md)
|
||||
- [x] [Wbi 签名](docs/misc/sign/wbi.md)(`wts`与`w_rid`)
|
||||
- [ ] [bili_ticket](docs/misc/sign/bili_ticket.md)
|
||||
@ -74,7 +74,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [x] [公共错误码](docs/misc/errcode.md)
|
||||
- [x] [图片格式化](docs/misc/picture.md)
|
||||
- [x] [bvid 说明](docs/misc/bvid_desc.md)
|
||||
- [ ] [设备唯一标识BUVID](docs/misc/device_identity.md)
|
||||
- [ ] [设备唯一标识 BUVID](docs/misc/device_identity.md)
|
||||
- [ ] [获取 buvid3 / buvid4 / b_nut](docs/misc/buvid3_4.md)
|
||||
- [ ] [b23.tv 短链](docs/misc/b23tv.md)
|
||||
- [ ] [gRPC API 接口定义](grpc_api)
|
||||
@ -92,6 +92,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [ ] [消息中心](docs/message)
|
||||
- [ ] [通知类消息](docs/message/msg.md)
|
||||
- [ ] [私信](docs/message/private_msg.md)
|
||||
- [ ] [私信消息类型、内容说明](docs/message/private_msg_content.md)
|
||||
- [ ] 设置
|
||||
- [ ] [用户](docs/user)
|
||||
- [x] [基本信息](docs/user/info.md)
|
||||
@ -116,20 +117,20 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [x] [点赞 & 投币 & 收藏 & 分享](docs/video/action.md)
|
||||
- [ ] [TAG](docs/video/tags.md)
|
||||
- [x] [视频推荐](docs/video/recommend.md)
|
||||
- [x] [播放&下载地址 (视频流)](docs/video/videostream_url.md)
|
||||
- [x] [播放 & 下载地址 (视频流)](docs/video/videostream_url.md)
|
||||
- [ ] [互动视频](docs/video/interact_video.md)
|
||||
- [x] [高能进度条](docs/video/pbp.md)
|
||||
- [ ] [信息上报 (心跳及记录历史)](docs/video/report.md)
|
||||
- [x] [视频属性数据](docs/video/attribute_data.md)
|
||||
- [x] [视频在线人数](docs/video/online.md)
|
||||
- [x] [视频AI摘要](docs/video/summary.md)
|
||||
- [x] [视频 AI 摘要](docs/video/summary.md)
|
||||
- [ ] [稿件投诉](docs/video/appeal.md)
|
||||
- [ ] [视频状态数](docs/video/status_number.md)
|
||||
- [ ] [视频合集](docs/video/collection.md)
|
||||
- [ ] [播放器](docs/video/player.md)
|
||||
- [ ] [剧集 (番剧、影视)](docs/bangumi)
|
||||
- [ ] [基本信息](docs/bangumi/info.md)
|
||||
- [ ] [播放&下载地址(视频流)](docs/bangumi/videostream_url.md)
|
||||
- [ ] [播放 & 下载地址(视频流)](docs/bangumi/videostream_url.md)
|
||||
- [ ] [时间轴](docs/bangumi/timeline.md)
|
||||
- [ ] [追番相关](docs/bangumi/follow.md)
|
||||
- [ ] 状态数
|
||||
@ -199,7 +200,7 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [ ] [充电](docs/electric)
|
||||
- [ ] [包月充电](docs/electric/monthly.md)
|
||||
- [ ] 自定义充电
|
||||
- [x] [B币方式充电](docs/electric/Bcoin.md)
|
||||
- [x] [B 币方式充电](docs/electric/Bcoin.md)
|
||||
- [x] [微信 & 支付宝方式充电](docs/electric/WeChat&Alipay.md)
|
||||
- [x] [充电留言](docs/electric/charge_msg.md)
|
||||
- [x] [充电列表](docs/electric/charge_list.md)
|
||||
@ -262,9 +263,9 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [x] [青少年模式](docs/teenager/teenager_mode.md)
|
||||
- [ ] 亲子平台
|
||||
- [ ] 课堂模式
|
||||
- [ ] [B币钱包](docs/wallet/)
|
||||
- [ ] [B 币钱包](docs/wallet/)
|
||||
- [ ] [基本信息](docs/wallet/info.md)
|
||||
- [ ] B币充值
|
||||
- [ ] B 币充值
|
||||
- [ ] 贝壳相关
|
||||
- [ ] [哔哩哔哩漫画](docs/manga)
|
||||
- [ ] 用户信息
|
||||
@ -275,18 +276,18 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
- [x] [漫画赛季](docs/manga/Season.md)
|
||||
- [x] [漫读券/已购相关](docs/manga/User.md)
|
||||
- [x] [下载](docs/manga/Download.md)
|
||||
- [x] [data.index解析](docs/manga/index_file.md)
|
||||
- [x] [data.index 解析](docs/manga/index_file.md)
|
||||
- [ ] [获取轻享卡信息](docs/manga/light_card.md)
|
||||
- [ ] 哔哩哔哩游戏
|
||||
- [ ] [终端网络查询](docs/clientinfo)
|
||||
- [x] [基于 ip 的地理位置查询](docs/clientinfo/ip.md)
|
||||
- [x] [基于 IP 的地理位置查询](docs/clientinfo/ip.md)
|
||||
- [ ] [客服中心](docs/customerservice)
|
||||
- [ ] [客服消息](docs/customerservice/msg.md)
|
||||
- [ ] [web端组件](docs/web_widget)
|
||||
- [ ] [web 端组件](docs/web_widget)
|
||||
- [x] [分区当日投稿数](docs/web_widget/zone_upload.md)
|
||||
- [x] [404 页漫画收集](docs/web_widget/404_manga.md)
|
||||
- [ ] [首页横幅头图](docs/web_widget/header.md)
|
||||
- [ ] [APP端组件](docs/APP_widget)
|
||||
- [ ] [APP 端组件](docs/APP_widget)
|
||||
- [x] [开屏图片 + 恰饭珍贵录像](docs/APP_widget/splash.md)
|
||||
- [ ] [获取最新 APP 版本](docs/APP_widget/ver.md)
|
||||
- [ ] [个性装扮](docs/garb)
|
||||
@ -302,13 +303,13 @@ B站 API 采用 C/S 结构,大多数接口为 REST API 和 gRPC,少部分接
|
||||
|
||||
## 📖相关协议基础
|
||||
|
||||
http 协议:[传送门](https://www.cnblogs.com/an-wen/p/11180076.html)
|
||||
HTTP 协议:[传送门](https://www.cnblogs.com/an-wen/p/11180076.html)
|
||||
|
||||
json 序列格式:[传送门](https://www.sojson.com/json/json_index.html)
|
||||
JSON 序列格式:[传送门](https://www.sojson.com/json/json_index.html)
|
||||
|
||||
xml 序列格式:[传送门](https://www.w3school.com.cn/xml/xml_intro.asp)
|
||||
XML 序列格式:[传送门](https://www.w3school.com.cn/xml/xml_intro.asp)
|
||||
|
||||
protobuf 序列格式:[传送门](https://www.jianshu.com/p/a24c88c0526a )
|
||||
ProtoBuf 序列格式:[传送门](https://www.jianshu.com/p/a24c88c0526a)
|
||||
|
||||
## 💦交流
|
||||
|
||||
@ -339,11 +340,11 @@ OR Aifadian:[https://afdian.net/@ShakaiAneE](https://afdian.net/@ShakaiAneE)
|
||||
- [fython/BilibiliAPIDocs](https://github.com/fython/BilibiliAPIDocs)
|
||||
- [czp3009/bilibili-api](https://github.com/czp3009/bilibili-api)
|
||||
- [Vespa314/bilibili-api](https://github.com/Vespa314/bilibili-api)
|
||||
- [wnstar/bili-utils](https://github.com/wnstar/bili-utils)
|
||||
- [lovelyyoshino/Bilibili-Live-API](https://github.com/lovelyyoshino/Bilibili-Live-API)
|
||||
- [flaribbit/bilibili-manga-spider](https://github.com/flaribbit/bilibili-manga-spider)
|
||||
- [simon300000/bili-api](https://github.com/simon300000/bili-api)
|
||||
- [iyear/biligo](https://github.com/iyear/biligo) Bilibili API SDK in Golang
|
||||
- [Pengfei00/bili-utils](https://github.com/Pengfei00/bili-utils): bilibili 工具箱
|
||||
- [lovelyyoshino/Bilibili-Live-API](https://github.com/lovelyyoshino/Bilibili-Live-API): Bilibili 直播/番剧 API 文档
|
||||
- [flaribbit/bilibili-manga-spider](https://github.com/flaribbit/bilibili-manga-spider): Bilibili 漫画爬虫
|
||||
- [simon300000/bili-api](https://github.com/simon300000/bili-api): Bilibili Node.js API
|
||||
- [iyear/biligo](https://github.com/iyear/biligo): Bilibili API SDK in Golang
|
||||
- [bilibili-openplatform/demo](https://github.com/bilibili-openplatform/demo): 哔哩哔哩开放平台示例代码库
|
||||
- [ddiu8081/blive-message-listener](https://github.com/ddiu8081/blive-message-listener): Bilibili-live danmu listener with type. Bilibili 直播间弹幕监听库,支持类型输出。
|
||||
- [Nemo2011/bilibili-api](https://github.com/Nemo2011/bilibili-api): 哔哩哔哩常用API调用。支持视频、番剧、用户、频道、音频等功能。工具齐全。
|
||||
@ -352,25 +353,23 @@ OR Aifadian:[https://afdian.net/@ShakaiAneE](https://afdian.net/@ShakaiAneE)
|
||||
### 成品
|
||||
|
||||
- [NullPointerException/AnimePipe](https://codeberg.org/NullPointerException/AnimePipe): 功能完善的Android流媒体综合客户端,支持Bilibili, Youtube, NicoNico
|
||||
- [3Shain/BiliChat](https://github.com/3Shain/BiliChat) : 基于h5的B站直播弹幕姬
|
||||
- [AncientLysine/BiliLocal](https://github.com/AncientLysine/BiliLocal):本地弹幕播放器
|
||||
- [zyzsdy/biliroku](https://github.com/zyzsdy/biliroku):bilibili 生放送(直播)录制
|
||||
- [otakustay/danmaku-to-ass](https://github.com/otakustay/danmaku-to-ass):A站B站弹幕转字幕文件
|
||||
- [bilibili-helper/bilibili-helper-o](https://github.com/bilibili-helper/bilibili-helper-o):哔哩哔哩 (bilibili.com) 辅助工具,可以下载视频,查询弹幕发送人以及一些十分实用的直播区功能。
|
||||
- [apachecn/BiliDriveEx](https://github.com/apachecn/BiliDriveEx):基于B站相簿上传的文件分块索引存储器
|
||||
- [apachecn/CDNDrive](https://github.com/apachecn/CDNDrive):基于B站相簿上传的文件分块索引存储器
|
||||
- [Hsury/BiliDrive](https://github.com/Hsury/BiliDrive):基于B站相簿上传的文件分块索引存储器
|
||||
- [Tsuk1ko/bilibili-live-chat](https://github.com/Tsuk1ko/bilibili-live-chat):无后端的仿 YouTube Live Chat 风格的简易 Bilibili 弹幕姬
|
||||
- [ironmanic/crawler_target_users_good](https://github.com/ironmanic/crawler_target_users_good):搜索bilibili特定视频,为评论 点赞,关注,私信,一体化服务
|
||||
- [dd-center/DDatElectron](https://github.com/dd-center/DDatElectron):DD@Home 分布式项目, 桌面客户端
|
||||
- [dd-center/vtbs.moe](https://github.com/dd-center/vtbs.moe):B站VTB数据中心
|
||||
- [catlair/BiliOutils](https://github.com/catlair/BiliOutils):利用Docker,青龙面板,以及各种云函数等实现 B 站每日自动投币,会员大积分,漫画阅读和抢兑,领取大会员福利,大会员月底给自己充电等。每天轻松获取65经验值。
|
||||
- [the1812/Bilibili-Evolved](https://github.com/the1812/Bilibili-Evolved):强大的哔哩哔哩增强脚本: 下载视频, 音乐, 封面, 弹幕 / 简化直播间, 评论区, 首页 / 自定义顶栏, 删除广告, 夜间模式 / 触屏设备支持
|
||||
- [3Shain/Comen](https://github.com/3Shain/Comen): 基于h5的B站直播弹幕姬
|
||||
- [AncientLysine/BiliLocal](https://github.com/AncientLysine/BiliLocal): 本地弹幕播放器
|
||||
- [zyzsdy/biliroku](https://github.com/zyzsdy/biliroku): bilibili 生放送(直播)录制
|
||||
- [otakustay/danmaku-to-ass](https://github.com/otakustay/danmaku-to-ass): A站B站弹幕转字幕文件
|
||||
- [bilibili-helper/bilibili-helper-o](https://github.com/bilibili-helper/bilibili-helper-o): 哔哩哔哩 (bilibili.com) 辅助工具,可以下载视频,查询弹幕发送人以及一些十分实用的直播区功能。
|
||||
- [apachecn/CDNDrive](https://github.com/apachecn/CDNDrive): 基于B站相簿上传的文件分块索引存储器
|
||||
- [Hsury/BiliDrive](https://github.com/Hsury/BiliDrive): 基于B站相簿上传的文件分块索引存储器
|
||||
- [Tsuk1ko/bilibili-live-chat](https://github.com/Tsuk1ko/bilibili-live-chat): 无后端的仿 YouTube Live Chat 风格的简易 Bilibili 弹幕姬
|
||||
- [ironmanic/crawler_target_users_good](https://github.com/ironmanic/crawler_target_users_good): 搜索bilibili特定视频,为评论 点赞,关注,私信,一体化服务
|
||||
- [dd-center/DDatElectron](https://github.com/dd-center/DDatElectron): DD@Home 分布式项目, 桌面客户端
|
||||
- [dd-center/vtbs.moe](https://github.com/dd-center/vtbs.moe): B站VTB数据中心
|
||||
- [the1812/Bilibili-Evolved](https://github.com/the1812/Bilibili-Evolved): 强大的哔哩哔哩增强脚本: 下载视频、音乐、封面、弹幕 / 简化直播间、评论区、首页 / 自定义顶栏、删除广告、夜间模式 / 触屏设备支持
|
||||
- [xlzy520/bili-short-url](https://github.com/xlzy520/bili-short-url): 哔哩哔哩短链生成器
|
||||
- [zjkwdy/bili_app_splash](https://github.com/zjkwdy/bili_app_splash): B站壁纸娘和开屏图自动下载,每天使用Actions自动同步
|
||||
- [Jannchie/BiliOB](https://github.com/Jannchie/BiliOB): BiliOB观测者是一个观测B站UP主及视频数据变化,并予以分析的Web应用程序
|
||||
- [biliob233/biliob233.github.io](https://github.com/biliob233/biliob233.github.io): ~~无可奉告~~
|
||||
- [biliup/biliup](https://github.com/biliup/biliup): 全自动录播、投稿工具,也支持twitch、ytb频道搬运。提供分p上传b站接口,腾讯云内网免流+大幅提速
|
||||
- [biliup/biliup](https://github.com/biliup/biliup): 全自动录播、投稿工具,支持录制直播弹幕,也支持Youtube、twitch直播回放列表自动搬运到B站
|
||||
- [ddiu8081/bilicli](https://github.com/ddiu8081/bilicli): Bilibili-live danmu dashboard in your terminal.
|
||||
- [MotooriKashin/Bilibili-Old](https://github.com/MotooriKashin/Bilibili-Old): 恢复旧版Bilibili页面,为了那些念旧的人。
|
||||
- [SocialSisterYi/bcut-asr](https://github.com/SocialSisterYi/bcut-asr): 使用必剪API的语音字幕识别
|
||||
@ -380,14 +379,10 @@ OR Aifadian:[https://afdian.net/@ShakaiAneE](https://afdian.net/@ShakaiAneE)
|
||||
|
||||
### 其他
|
||||
|
||||
- [kuresaru/geetest-validator](https://github.com/kuresaru/geetest-validator):geetest调试器
|
||||
|
||||
- [uw-labs/bloomrpc](https://github.com/uw-labs/bloomrpc): GUI Client for GRPC Services
|
||||
|
||||
- [kuresaru/geetest-validator](https://github.com/kuresaru/geetest-validator): GeeTest 调试器
|
||||
- [bloomrpc/bloomrpc](https://github.com/bloomrpc/bloomrpc): GUI Client for GRPC Services
|
||||
- [grpc/grpc](https://github.com/grpc/grpc): The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
|
||||
|
||||
- [quicktype](https://github.com/quicktype/quicktype) quicktype generates strongly-typed models and serializers from JSON, JSON Schema, TypeScript, and GraphQL queries, making it a breeze to work with JSON type-safely in many programming languages.一键生成多种语言的json反序列化所需类,以便于快速反序列化,
|
||||
有网页版
|
||||
- [glideapps/quicktype](https://github.com/glideapps/quicktype): quicktype generates strongly-typed models and serializers from JSON, JSON Schema, TypeScript, and GraphQL queries, making it a breeze to work with JSON type-safely in many programming languages. 一键生成多种语言的JSON反序列化所需类,以便于快速反序列化,有网页版
|
||||
|
||||
<style scoped>
|
||||
.shields a {
|
||||
|
@ -10,6 +10,8 @@
|
||||
|
||||
注:`max`、`business`、`view_at`参数用于历史记录列表的 IFS (无限滚动),其用法类似链表的 next 指针
|
||||
|
||||
本接口也可以返回已失效稿件的信息
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
@ -349,6 +351,8 @@ curl -G 'https://api.bilibili.com/x/web-interface/history/cursor' \
|
||||
|
||||
认证方式:Cookie (SESSDATA)
|
||||
|
||||
本接口也可以返回已失效稿件的信息
|
||||
|
||||
**url参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
|
@ -1,6 +1,6 @@
|
||||
# 通知消息
|
||||
|
||||
## 未读消息数
|
||||
## 获取未读消息数
|
||||
|
||||
> https://api.bilibili.com/x/msgfeed/unread
|
||||
> https://api.vc.bilibili.com/x/im/web/msgfeed/unread (新接口)
|
||||
@ -9,12 +9,14 @@
|
||||
|
||||
认证方式:Cookie(SESSDATA)
|
||||
|
||||
本接口不会返回未读的私信数,要获取未读的私信数请参阅[未读私信数](private_msg.md#未读私信数)相关说明
|
||||
|
||||
**URL参数:**
|
||||
|
||||
| 参数名 | 类型 | 内容 | 必要性 | 备注 |
|
||||
| -------- | ---- | ---- | ------ | -------------------------- |
|
||||
| build | num | 0 | 不必要 | 从新接口发现, 作用尚不明确 |
|
||||
| mobi_app | str | web | 不必要 | 从新接口发现, 作用尚不明确 |
|
||||
| -------- | ---- | ---------------- | ------ | ------------------------- |
|
||||
| build | num | 客户端内部版本号 | 非必要 | 默认为 `0` |
|
||||
| mobi_app | str | 平台标识 | 非必要 | 可为 `web` 等 |
|
||||
|
||||
**json回复:**
|
||||
|
||||
@ -30,23 +32,23 @@
|
||||
`data` 对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------- | ---- | -------------- | ---------------------- |
|
||||
| ------------- | ---- | ------------------ | -------------------------- |
|
||||
| at | num | 未读at数 | |
|
||||
| chat | num | 0 | 作用尚不明确 |
|
||||
| chat | num | 0 | 仅旧接口,**作用尚不明确** |
|
||||
| coin | num | 未读投币数 | |
|
||||
| danmu | num | 未读弹幕数 | |
|
||||
| favorite | num | 未读收藏数? | |
|
||||
| favorite | num | 未读收藏数 | |
|
||||
| like | num | 未读点赞数 | |
|
||||
| recv_like | num | 未读点赞数 | |
|
||||
| recv_reply | num | 未读回复数 | |
|
||||
| recv_like | num | 未读点赞数 | 同 `like` |
|
||||
| recv_reply | num | 未读回复数 | 同 `reply` |
|
||||
| reply | num | 未读回复数 | |
|
||||
| sys_msg | num | 未读系统通知数 | |
|
||||
| sys_msg_style | num | 1 | 仅新接口, 作用尚不明确 |
|
||||
| up | num | UP主助手信息数 | |
|
||||
| sys_msg_style | num | 1 | 仅新接口, **作用尚不明确** |
|
||||
| up | num | 未读UP主助手信息数 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
以下信息代表了未读点赞数为10,未读回复数为4,未读at消息数为3,未读系统通知数为2,UP主助手信息数为1
|
||||
以下信息代表了未读点赞数为10,未读回复数为4,未读at消息数为3,未读系统通知数为2,未读UP主助手信息数为1
|
||||
|
||||
```shell
|
||||
curl 'https://api.vc.bilibili.com/x/im/web/msgfeed/unread' \
|
||||
|
File diff suppressed because it is too large
Load Diff
627
docs/message/private_msg_content.md
Normal file
627
docs/message/private_msg_content.md
Normal file
@ -0,0 +1,627 @@
|
||||
# 私信消息类型、内容说明
|
||||
|
||||
## 通用消息类型
|
||||
|
||||
以下消息类型适用于大多数会话
|
||||
|
||||
### 文字消息(`msg_type=1`)
|
||||
|
||||
在发送私信时,请确保下面的对象合法且 `content` 项的值为非空文本,否则会提示 `请求错误`
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---- |
|
||||
| content | str | 私信内容 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
内容为 `Hello` 的文字消息
|
||||
|
||||
```json
|
||||
{
|
||||
"content": "Hello"
|
||||
}
|
||||
```
|
||||
|
||||
### 图片消息(`msg_type=2`)
|
||||
|
||||
在发送私信时,请确保下面的对象合法且 `url` 项的值为 B 站的图床 url,否则会报 21037 `图片格式不合法,不要调戏接口啦` 错误
|
||||
|
||||
建议设置 `height` 与 `width` 属性,否则可能会导致消息显示异常
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ---------- | ------------------------- |
|
||||
| url | str | 图片url | 一般为 B 站图床 url |
|
||||
| height | num | 图片高度 | 单位:像素(非必要) |
|
||||
| width | num | 图片宽度 | 单位:像素(非必要) |
|
||||
| imageType | str | 图片格式 | (非必要) |
|
||||
| original | num | 是否为原图 | 当本参数值为 `1` 时,APP上会出现“下载原图”按钮(非必要) |
|
||||
| size | num | 文件大小 | 单位:千字节(非必要) |
|
||||
|
||||
**示例:**
|
||||
|
||||
图片 `https://message.biliimg.com/bfs/im_new/c161fdf51d901c1607a15e30f10116dd425503913.jpg`
|
||||
|
||||
```json
|
||||
{
|
||||
"url": "https://message.biliimg.com/bfs/im_new/c161fdf51d901c1607a15e30f10116dd425503913.jpg",
|
||||
"height": 300,
|
||||
"width": 300,
|
||||
"imageType": "jpeg",
|
||||
"original": 1,
|
||||
"size": 55.443
|
||||
}
|
||||
```
|
||||
|
||||
### 撤回消息(`msg_type=5`)
|
||||
|
||||
内容为目标私信的 `msg_key`
|
||||
|
||||
请确保目标私信存在、在撤回有效期(120 秒)里,且与发送的私信在同一会话内,只能撤回自己发送的私信
|
||||
|
||||
成功发送此私信后,目标私信的 `msg_status` 会变成 `1`(在前端会显示目标私信被撤回)
|
||||
|
||||
**示例:**
|
||||
|
||||
假如存在 `msg_key` 为 `7345551441311046575` 的私信 A,用户发送了 `msg_type` 为 `5` 且 `content` 为以下内容的私信 B:
|
||||
|
||||
```json
|
||||
7345551441311046575
|
||||
```
|
||||
|
||||
若发送成功,则私信 A 会被撤回(在前端显示该消息被撤回),并且其 `msg_status` 也会变成 `1`
|
||||
|
||||
### 自定义表情消息(`msg_type=6`)
|
||||
|
||||
结构同[图片消息](#图片消息msg_type2)
|
||||
|
||||
### 分享消息(`msg_type=7`)
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ---------------- | -------------------------------------------------------------- |
|
||||
| author | str | 分享内容作者 | 此项不实时更新,在发送私信时设置(非必要) |
|
||||
| headline | str | 分享内容主标题 | 比 `title` 更突出;此项不实时更新,在发送私信时设置(非必要) |
|
||||
| id | num | 分享内容id | |
|
||||
| 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 | 分享内容标题 | 此项不实时更新,在发送私信时设置 |
|
||||
| url | str | 分享内容url | (非必要) |
|
||||
| bvid | str | 视频BV号 | 当 `source` 值为 `5` 时有效(非必要) |
|
||||
|
||||
**示例:**
|
||||
|
||||
分享 UP 主 “社会易姐QwQ” 的视频 av246551172/BV16v411e7CW
|
||||
|
||||
```json
|
||||
{
|
||||
"author": "社会易姐QwQ",
|
||||
"headline": "",
|
||||
"id": 246551172,
|
||||
"source": 5,
|
||||
"thumb": "http://i2.hdslb.com/bfs/archive/14ba78056f946ece8c954a10677ef6b073edb178.jpg",
|
||||
"title": "合 成 大 東 瓜",
|
||||
"bvid": "BV16v411e7CW"
|
||||
}
|
||||
```
|
||||
|
||||
### ~~系统撤回消息(`msg_type=8`)~~
|
||||
|
||||
~~此消息类型由于存在安全问题,已被弃用~~
|
||||
|
||||
<details>
|
||||
<summary>查看此消息类型说明</summary>
|
||||
|
||||
此类型消息在接收时的 `msg_type` 的值为 `5`(而不是 `8`)且 `sys_cancel` 的值为 `true`,**仅在用户会话中有效;目前已不可直接发送**
|
||||
|
||||
内容为目标私信的 `msg_key`
|
||||
|
||||
请确保目标私信存在,且与发送的私信在同一会话内,只能撤回自己发送的私信;**不限制目标私信的发送时间**
|
||||
|
||||
成功发送此私信后,目标私信的 `msg_status` 会变成 `2`(在前端会直接隐藏目标私信,且后端也不会返回目标私信的任何信息)
|
||||
|
||||
</details>
|
||||
|
||||
### 小程序消息(`msg_type=9`)
|
||||
|
||||
由于 B 站并没有对外公开小程序,此消息类型不常用
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------ | ------------------------- |
|
||||
| avatar | str | 小程序图标 | |
|
||||
| cover | str | 小程序封面 | |
|
||||
| id | str | 小程序id | |
|
||||
| jump_uri | str | 小程序链接 | |
|
||||
| label_cover | str | 标签图标 | |
|
||||
| label_name | str | 标签文字内容 | 一般为 `小程序` |
|
||||
| name | str | 小程序名称 | |
|
||||
| title | str | 小程序标题 | |
|
||||
|
||||
**示例:**
|
||||
|
||||
分享 “主站测试专用小程序”
|
||||
|
||||
```json
|
||||
{
|
||||
"avatar": "http://i0.hdslb.com/bfs/mall/mall/7b/dd/7bdd072290de017593791b52e937ca29.png",
|
||||
"cover": "http://i0.hdslb.com/bfs/mall/mall/7b/dd/7bdd072290de017593791b52e937ca29.png",
|
||||
"id": "bili91e3e7e93af281f9",
|
||||
"jump_uri": "https://mall.bilibili.com/miniapp/bili91e3e7e93af281f9/pages/main?___timestamp=1689526821040&_biliFrom=about_bili_message&share_medium=android&share_source=bili_message&bbid=XU8CE838022AF6625C64B2153A3EF1E571AFF&ts=1689526821048",
|
||||
"label_cover": "https://i0.hdslb.com/bfs/mall/mall/ae/0e/ae0ee4a857df5e307e1d04b5d420cb5b.png",
|
||||
"label_name": "小程序",
|
||||
"name": "主站测试专用小程序",
|
||||
"title": "主站测试专用小程序"
|
||||
}
|
||||
```
|
||||
|
||||
### 通知消息(`msg_type=10`)
|
||||
|
||||
此类型消息仅可接收,**不可直接发送**
|
||||
|
||||
**按钮显示逻辑说明:**
|
||||
|
||||
- **按钮的url:**首先尝试读取 `jump_uri_config`、`jump_uri_2_config`、`jump_uri_3_config` 对象中表示当前设备类型的 url(如 `web_uri`、`android_uri` 等);若为空值,则尝试读取 `jump_uri_config`、`jump_uri_2_config`、`jump_uri_3_config` 对象中 `all_uri` 的值;若仍为空值,则读取根对象中 `jump_uri`、`jump_uri_2`、`jump_uri_3` 的值;若仍为空值,则不显示该按钮(无论提示文字是否为空)
|
||||
- **按钮提示文字:**若按钮是可见的,则先尝试读取 `jump_uri_config`、`jump_uri_2_config`、`jump_uri_3_config` 对象中 `text` 的值;若为空值,则读取根对象中 `jump_text`、`jump_text_2`、`jump_text_3` 的值;若仍为空值,则提示文字为 `查看详情`
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------------- | ----- | ------------- | ------------------------- |
|
||||
| title | str | 通知标题 | |
|
||||
| text | str | 通知内容 | |
|
||||
| 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<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": "直播开始提醒",
|
||||
"text": "你预约的直播已开始,快来围观吧~",
|
||||
"jump_text": "进入直播间",
|
||||
"jump_uri": "https://live.bilibili.com/22747055?broadcast_type=0&is_room_feed=1&live_from=27040",
|
||||
"modules": [{
|
||||
"title": "预约主题",
|
||||
"detail": "2024哔哩哔哩拜年纪"
|
||||
}, {
|
||||
"title": "开播时间",
|
||||
"detail": "2024-02-09 19:32"
|
||||
}, {
|
||||
"title": "UP主",
|
||||
"detail": "哔哩哔哩拜年纪"
|
||||
}],
|
||||
"jump_text_2": "",
|
||||
"jump_uri_2": "",
|
||||
"jump_text_3": "",
|
||||
"jump_uri_3": "",
|
||||
"notifier": null,
|
||||
"jump_uri_config": {
|
||||
"all_uri": "https://live.bilibili.com/22747055?broadcast_type=0&is_room_feed=1&live_from=27040",
|
||||
"text": "进入直播间"
|
||||
},
|
||||
"jump_uri_2_config": {
|
||||
"text": ""
|
||||
},
|
||||
"jump_uri_3_config": {
|
||||
"text": ""
|
||||
},
|
||||
"biz_content": {
|
||||
"cover": "",
|
||||
"backup_cover": "http://i0.hdslb.com/bfs/live/new_room_cover/bdae2665883ec8aa4e79aca16f3c5ee2df1da64f.jpg",
|
||||
"refresh_type": 1,
|
||||
"biz_type": 2,
|
||||
"biz_id1": "1868902080",
|
||||
"biz_id2": "473923647994271663",
|
||||
"biz_status": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 视频推送消息(`msg_type=11`)
|
||||
|
||||
此类型消息仅可接收,**不可直接发送**;有小概率会出现即使视频存在,也只会出现 `rid`、`type`(值为 `11` 或 `8`,注意其名称后面没有下划线)和 `attach_msg` 三项的现象
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ---- | ------------ | ------------------------------------------------------ |
|
||||
| title | str | 视频标题 | 接收私信时实时更新此项,若视频失效则为空文本 |
|
||||
| times | num | 视频时长 | 以秒为单位,接收私信时实时更新此项,若视频失效则为 `0` |
|
||||
| cover | str | 视频封面 | 接收私信时实时更新此项,若视频失效则为空文本 |
|
||||
| rid | num | 视频AV号 | |
|
||||
| type_ | num | (?) | **作用尚不明确** |
|
||||
| desc | str | 视频简介 | 接收私信时实时更新此项,若视频失效则为空文本 |
|
||||
| bvid | str | 视频BV号 | |
|
||||
| view | num | 视频播放量 | 接收私信时实时更新此项,若视频失效则为 `0` |
|
||||
| danmaku | num | 视频弹幕数 | 接收私信时实时更新此项,若视频失效则为 `0` |
|
||||
| pub_date | num | 视频发布时间 | 秒级时间戳,若视频失效则为 `0` |
|
||||
| attach_msg | 有效时:obj<br />无效时:null | UP主赠言 | |
|
||||
|
||||
`attach_msg`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------------------------------------------- |
|
||||
| id | num | 赠言id | |
|
||||
| content | str | 赠言内容 | 会自动加上 `UP主赠言:` 前缀,可能包含私信表情 |
|
||||
|
||||
**示例:**
|
||||
|
||||
推送视频 av740817783/BV1Dk4y1E7MZ
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "【2023嵌入式大赛】浅浅测试一下龙芯开发板",
|
||||
"times": 308,
|
||||
"cover": "http://i2.hdslb.com/bfs/archive/880c937de9af758451aa94ee29771e0264c1903a.jpg",
|
||||
"rid": 740817783,
|
||||
"type_": 8,
|
||||
"desc": "最近把龙芯开发板部分(任务一)程序完成了,时间非常紧迫,就不知道为啥突然给省赛加个(本来国赛的题\n从硬件焊接开始,到软件整完不过5天啊喂,肝疼,过几天比赛完发硬件制作过程\n硬件使用龙芯一号(LS1B010)SOC,软件使用 C 语言+FreeRTOS+VSCode 开发",
|
||||
"bvid": "BV1Dk4y1E7MZ",
|
||||
"view": 13492,
|
||||
"danmaku": 5,
|
||||
"pub_date": 1683381582,
|
||||
"attach_msg": null
|
||||
}
|
||||
```
|
||||
|
||||
### 专栏推送消息(`msg_type=12`)
|
||||
|
||||
此类型消息仅可接收,**不可直接发送**;有小概率会出现即使专栏存在,也只会出现 `rid`、`type`(值为 `12`)和 `attach_msg` 三项的现象
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ----------- | ---- | ------------ | ------------------------------------------------------ |
|
||||
| rid | num | 专栏CV号 | |
|
||||
| title | str | 专栏标题 | 接收私信时实时更新此项,若专栏失效则为 `内容已失效` |
|
||||
| summary | str | 专栏内容概要 | 接收私信时实时更新此项,若专栏失效则为空文本 |
|
||||
| author | str | 专栏UP主昵称 | 接收私信时实时更新此项,若专栏失效则为空文本 |
|
||||
| view | num | 专栏观看数 | 接收私信时实时更新此项,若专栏失效则为 `0` |
|
||||
| like | num | 专栏点赞数 | 接收私信时实时更新此项,若专栏失效则为 `0` |
|
||||
| reply | num | 专栏评论数 | 接收私信时实时更新此项,若专栏失效则为 `0` |
|
||||
| template_id | num | (?) | **作用尚不明确** |
|
||||
| image_urls | 有效时:array<br />无效时:null | 专栏封面列表 | 接收私信时实时更新此项,若专栏失效则为 `null` |
|
||||
| attach_msg | 有效时:obj<br />无效时:null | UP主赠言 | |
|
||||
| pub_date | num | 专栏发布时间 | 秒级时间戳,若专栏失效则为 `0` |
|
||||
|
||||
`image_urls`数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------- | ---- |
|
||||
| 0 | str | 封面1 | |
|
||||
| n | str | 封面(n+1) | |
|
||||
| …… | str | …… | …… |
|
||||
|
||||
`attach_msg`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------------------------------------------- |
|
||||
| id | num | 赠言id | |
|
||||
| content | str | 赠言内容 | 会自动加上 `UP主赠言:` 前缀,可能包含私信表情 |
|
||||
|
||||
**示例:**
|
||||
|
||||
推送专栏 cv18275013
|
||||
|
||||
```json
|
||||
{
|
||||
"rid": 18275013,
|
||||
"title": "【单片机】遛弯捕捉到野生U盾,点亮它!",
|
||||
"summary": "前一阵在学校那会,偶然的机会晚上饭后出去遛弯,在路边看到个被抛弃的 U盾,这么一想应该是附近拆迁搬东西时丢出去的,随即捕捉它。作为一个啥都折腾的捡垃圾技术宅肯定要去研究一波(笑是个建行的 U盾,按键部分还有点老灰,屏幕的尺寸盲猜 128x64,不可能再大了背面除了序列号没有别的东西,顶部有个盖子,像极了上古时期的 U盘插上充电宝可以正常点亮,至少屏没坏拆解&分析电路直接开拆,用刀片沿着四周缝隙插入并挑开卡扣内部结构挺简单,只有两颗较大的芯片,屏幕的 FPC 排线直接焊接在 PCB 上中间的这颗是",
|
||||
"author": "社会易姐QwQ",
|
||||
"view": 872,
|
||||
"like": 38,
|
||||
"reply": 7,
|
||||
"template_id": 4,
|
||||
"image_urls": [
|
||||
"https://i0.hdslb.com/bfs/article/c7c60e018c43c5c3a6e1520239021ea2753b2880.jpg"
|
||||
],
|
||||
"attach_msg": null,
|
||||
"pub_date": 1661358081
|
||||
}
|
||||
```
|
||||
|
||||
### 图片卡片消息(`msg_type=13`)
|
||||
|
||||
此类型消息仅可接收,**不可直接发送**
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| -------- | ---- | ------------------- | -------------------- |
|
||||
| pic_url | str | 图片url | |
|
||||
| jump_url | str | 点击图片跳转到的url | |
|
||||
| title | str | 文字说明 | 显示在聊天列表的文字 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```json
|
||||
{
|
||||
"pic_url": "http://i0.hdslb.com/bfs/location/9e57aff7245c226c05ba46ddd1e82667f74d5a06.png",
|
||||
"jump_url": "https://www.bilibili.com/h5/mall/suit/detail?navhide=1&id=66359&from=Banner",
|
||||
"title": "原神,启动!"
|
||||
}
|
||||
```
|
||||
|
||||
### 分享其他内容消息(`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 | 稿件AV号 | |
|
||||
| card_type | num | 稿件类型 | 一般为 `1` |
|
||||
| jump_url | str | 稿件链接 | |
|
||||
| cover_url | str | 稿件封面url | 此项不实时更新,在发送私信时设置 |
|
||||
| field1 | str | 稿件标题 | 此项不实时更新,在发送私信时设置 |
|
||||
| field2 | str | 稿件发布时间 | 格式:`YYYY-MM-DD` |
|
||||
| field3 | str | 字段3 | 此项不实时更新,在发送私信时设置 |
|
||||
| icon3 | num | 图标3类型 | 1:播放量<br />3:弹幕数<br />5:收藏量 |
|
||||
| field4 | str | 字段4 | 此项不实时更新,在发送私信时设置 |
|
||||
| icon4 | num | 图标4类型 | 1:播放量<br />3:弹幕数<br />5:收藏量 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```json
|
||||
{
|
||||
"main_title": "更多宝藏内容",
|
||||
"reply_content": "感谢大佬关注哦~[doge][脱单doge][doge]\n这里是科技区底边小UP,日常瞎折腾,软硬件电路程序网络服务器都折腾,视频月更风格硬核略小众,咕咕咕.....\n老大二了,就不中二了\n有什么好的建议欢迎私信",
|
||||
"sub_cards": [{
|
||||
"card_id": 379743801,
|
||||
"card_type": 1,
|
||||
"jump_url": "https://b23.tv/BV1hZ4y197Cz",
|
||||
"cover_url": "http://i2.hdslb.com/bfs/archive/bfb87f033272926efe6ff4caee8e6c49c07ff6fe.jpg",
|
||||
"field1": "【宿舍评测】性能与便携两全 华为matebook E 2022深度体验及伪开箱",
|
||||
"field2": "2021-12-10",
|
||||
"field3": "20万",
|
||||
"icon3": 1,
|
||||
"field4": "479",
|
||||
"icon4": 3
|
||||
}, {
|
||||
"card_id": 768716232,
|
||||
"card_type": 1,
|
||||
"jump_url": "https://b23.tv/BV13r4y187R8",
|
||||
"cover_url": "http://i1.hdslb.com/bfs/archive/bb1d41ef0c17c2df25c8b6ef98f01466bdee0c1f.jpg",
|
||||
"field1": "【BadApple】使用古董示波器Aron BS-601播放BadApple!!!",
|
||||
"field2": "2022-05-03",
|
||||
"field3": "15万",
|
||||
"icon3": 1,
|
||||
"field4": "297",
|
||||
"icon4": 3
|
||||
}, {
|
||||
"card_id": 524989935,
|
||||
"card_type": 1,
|
||||
"jump_url": "https://b23.tv/BV17M411E7Kq",
|
||||
"cover_url": "http://i1.hdslb.com/bfs/archive/17335854dfad9d7990943d8cc6dc07c85912b103.jpg",
|
||||
"field1": "【拆解】华为 Matebook E 更换固态硬盘:从未见过如此好拆的二合一",
|
||||
"field2": "2023-02-24",
|
||||
"field3": "5万",
|
||||
"icon3": 1,
|
||||
"field4": "102",
|
||||
"icon4": 3
|
||||
}]
|
||||
}
|
||||
```
|
||||
|
||||
### 系统提示消息(`msg_type=18`)
|
||||
|
||||
此类型消息仅可接收,**不可直接发送**;由系统自动发送,但仅自己可见
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------- | ---- | -------- | ---------------------- |
|
||||
| content | str | 提示列表 | **经过序列化后**的JSON数组 |
|
||||
|
||||
`content`文本经JSON解析后的数组:
|
||||
|
||||
| 项 | 类型 | 内容 | 备注 |
|
||||
| ---- | ---- | --------- | ---- |
|
||||
| 0 | obj | 提示1 | |
|
||||
| n | obj | 提示(n+1) | |
|
||||
| …… | obj | …… | …… |
|
||||
|
||||
`content`文本经JSON解析后的数组中的对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| --------- | ---- | ------------------------ | ----------- |
|
||||
| text | str | 提示文字 | |
|
||||
| color_day | str | 浅色模式下的提示文字颜色 | HEX颜色代码 |
|
||||
| color_nig | str | 深色模式下的提示文字颜色 | HEX颜色代码 |
|
||||
| jump_url | str | 点击提示跳转到的url | (非必要) |
|
||||
|
||||
**示例:**
|
||||
|
||||
若自己与对方从未聊过天,且对方未关注自己,则会有系统提示
|
||||
|
||||
```json
|
||||
{
|
||||
"content": "[{\"text\":\"对方主动回复或关注你前,最多发送1条消息\",\"color_day\":\"#9499A0\",\"color_nig\":\"#9499A0\"}]"
|
||||
}
|
||||
```
|
||||
|
||||
### AI 消息(`msg_type=19`)
|
||||
|
||||
此消息类型尚未得到广泛使用
|
||||
|
||||
根对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ------------------- | ---- | -------------------- | ---------------- |
|
||||
| content | obj | 富文本内容 | |
|
||||
| show_like | bool | 是否显示点赞按钮 | |
|
||||
| show_change | bool | 是否显示修改内容按钮 | |
|
||||
| gpt_session_id | num | GPT 会话 id | |
|
||||
| gpt_bind_query | str | (?) | **作用尚不明确** |
|
||||
| session_closed_line | str | (?) | **作用尚不明确** |
|
||||
| voice_url | str | 语音 url(?) | |
|
||||
| sub_type | num | 子类型(?) | |
|
||||
| voice_time | num | 语音时长(?) | |
|
||||
|
||||
`content`对象:
|
||||
|
||||
| 字段 | 类型 | 内容 | 备注 |
|
||||
| ---------- | ----- | -------- | ---------------- |
|
||||
| paragraphs | array | 段落列表 | 详细信息有待补充 |
|
||||
|
||||
**示例:**
|
||||
|
||||
由于 B 站尚未公开此消息类型,暂无示例
|
||||
|
||||
## 粉丝团消息类型
|
||||
|
||||
以下消息类型仅常见于粉丝团中的系统消息(`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的应援团` 开通的消息(`msg_type=305`)
|
||||
|
||||
```json
|
||||
{
|
||||
"group_id": 221082140,
|
||||
"content": "社会易姐QwQ的应援团开通啦 (>▽<)"
|
||||
}
|
||||
```
|
||||
|
||||
成员 `wuziqian211` 进入 `社会易姐QwQ的应援团` 的消息(`msg_type=306`)
|
||||
|
||||
```json
|
||||
{
|
||||
"group_id": 221082140,
|
||||
"content": "欢迎wuziqian211入群"
|
||||
}
|
||||
```
|
Loading…
Reference in New Issue
Block a user