diff --git a/src/api/v1/bot.md b/src/api/v1/bot.md index 060193d5..92f60fb5 100644 --- a/src/api/v1/bot.md +++ b/src/api/v1/bot.md @@ -17,7 +17,7 @@ POST /v1/bot/banner 响应头: -```JSONC +```JSON { "code": 1, "data": { @@ -55,7 +55,7 @@ POST /v1/bot/new-list 响应头: -```JSONC +```JSON { "code": 1, "data": { @@ -88,7 +88,7 @@ POST /v1/bot/bot-detail 请求体: -```JSONC +```JSON { "id": "123" // 机器人 ID } @@ -96,7 +96,7 @@ POST /v1/bot/bot-detail 响应体: -```JSONC +```JSON { "code": 1, "data": { @@ -161,7 +161,7 @@ POST /v1/bot/bot-group-list 响应体: -```JSONC +```JSON { "code": 1, "data": { @@ -211,7 +211,7 @@ POST /v1/bot/edit-setting-json 请求体: -```JSONC +```JSON { "id": "123", // 机器人 ID "settingJson": "[]" // 机器人设置 json,需转义 @@ -220,7 +220,7 @@ POST /v1/bot/edit-setting-json 响应体: -```JSONC +```JSON { "code": 1, "msg": "success" @@ -239,7 +239,7 @@ POST /v1/bot/web-edit-bot 请求体: -```JSONC +```JSON { "nickname":"测试机器人名称", // 机器人名称 "introduction":"测试机器人简介", // 机器人简介 @@ -251,7 +251,7 @@ POST /v1/bot/web-edit-bot 响应体: -```JSONC +```JSON { "code": 1, "msg": "success" @@ -270,77 +270,17 @@ POST /v1/bot/bot-info 请求体: -```ProtoBuf -id: 123 // 机器人 ID +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -message bot_info_send { - string id = 2; // 机器人 ID -} -``` - -::: - 响应体: -```ProtoBuf -status { - request_id: 114514 - code: 1 - msg: "success" -} -Bot_data { - bot_id: "123" // 机器人 ID - name: "测试机器人名称" // 机器人名称 - name_id: 123 // 机器人名称 ID - avatar_url: "https://..." // 机器人头像 URL - avatar_id: 123 // 机器人头像 ID - introduction: "测试机器人介绍" // 机器人介绍 - create_by: "123" // 机器人创建者 ID - create_time: 123123123 // 机器人创建时间戳 - headcount: 123 // 使用人数 - private: 0 // 是否为私有: 0-公开,1-私有 - is_stop: 0 // 是否停用: 0-启用,1-停用 - always_agree: 0 // 自动进群: 0-不自动进群,1-自动进群 - do_not_disturb: 0 // 免打扰: 0-不免打扰,1-免打扰 - top: 0 // 置顶: 0-未置顶,1-已置顶 - group_limit: 0 // 限制进群: 0-允许进群,1-限制进群 -} -``` - -::: details ProtoBuf 数据结构 - -```proto -// 获取机器人信息返回信息 -message bot_info { - Status status = 1; - Bot_data data = 2; - message Bot_data { - string bot_id = 1; // 机器人 ID - string name = 2; // 机器人名称 - int64 name_id = 3; // 机器人名称 ID - string avatar_url = 4; // 机器人头像 URL - string avatar_id = 5; // 机器人头像 ID - string introduction = 6; // 机器人介绍 - string create_by = 7; // 机器人创建者 ID - int64 create_time = 8; // 机器人创建时间戳 - int64 headcount = 9; // 使用人数 - int32 private = 10; // 是否为私有: 0-公开,1-私有 - int32 is_stop = 11; // 是否停用: 0-启用,1-停用 - int32 always_agree = 13; // 自动进群: 0-不自动进群,1-自动进群 - int32 do_not_disturb = 15; // 免打扰: 0-不免打扰,1-免打扰 - int32 top = 18; // 置顶: 0-未置顶,1-已置顶 - int32 group_limit = 20; // 限制进群: 0-允许进群,1-限制进群 - } -} +```protobuf + ``` -::: - ## 获取机器人群聊看板 POST /v1/bot/board @@ -353,63 +293,16 @@ POST /v1/bot/board 请求体: -```ProtoBuf -id: 123 // 群聊 ID -chat_type: 2 // 对象类型 -``` - -::: details ProtoBuf 数据结构 - -```proto -// 看板 -message board_send { - string id = 3; // 对象 ID - int64 chat_type = 4; // 对象类型 -} +```protobuf + ``` -::: - 响应体: -```ProtoBuf -status { - request_id: 114514 - code: 1 - msg: "success" -} -Board_data { - bot_id: "123" // 机器人 ID - chat_id: "123" // 对象 ID - chat_type: 2 // 对象类别 - content: "测试看板内容" // 看板内容 - content_type = 5; // 看板内容类别,1-文本,2-markdown,3-html - last_update_time: 123123123 // 最后更新时间戳 - bot_name: "测试机器人名称" // 设置看板机器人名称 -} +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -// 获取看板返回 -message board { - Status status = 1; - Board_data data = 2; - message Board_data { - string bot_id = 1; // 机器人 ID - string chat_id = 2; // 对象 ID - int32 chat_type = 3; // 对象类别 - string content = 4; // 看板内容 - int32 content_type = 5; // 看板内容类别,1-文本,2-markdown,3-html - int64 last_update_time = 6; // 最后更新时间戳 - string bot_name = 7; // 设置看板机器人名称 - } -} -``` - -::: - ## 删除用户对机器人的添加 POST /v1/bot/remove-follower @@ -422,7 +315,7 @@ POST /v1/bot/remove-follower 请求体: -```JSONC +```JSON { "botId": "123", // 机器人 ID "userId": "123" // 用户 ID @@ -431,7 +324,7 @@ POST /v1/bot/remove-follower 响应体: -```JSONC +```JSON { "code": 1, "msg": "success" @@ -450,7 +343,7 @@ POST /v1/bot/remove-group 请求体: -```JSONC +```JSON { "botId": "123", // 机器人 ID "groupId": "123" // 群聊 ID @@ -459,7 +352,7 @@ POST /v1/bot/remove-group 响应体: -```JSONC +```JSON { "code": 1, "msg": "success" @@ -478,7 +371,7 @@ POST /v1/bot/llm/llm-setting-list 响应体: -```JSONC +```JSON { "code": 1, "data": { @@ -522,7 +415,7 @@ POST /v1/bot/llm/llm-setting-ref-info 请求体: -```JSONC +```JSON { "botId": "123", // 机器人 ID } @@ -530,7 +423,7 @@ POST /v1/bot/llm/llm-setting-ref-info 响应体: -```JSONC +```JSON { "code": 1, "data": { @@ -563,7 +456,7 @@ POST /v1/bot/reset-bot-token 请求体: -```JSONC +```JSON { "botId": "123", // 机器人 ID } @@ -571,7 +464,7 @@ POST /v1/bot/reset-bot-token 响应体: -```JSONC +```JSON { "code": 1, "data": { @@ -593,43 +486,14 @@ POST /v1/bot/create-bot 请求体: -```ProtoBuf -name: 2 //机器人名称 -introduction: 3 //机器人简介 -avatar_url:4 // 机器人头像 URL -private:5 // 是否私有(0-公开,1-私有) +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -message CreateBotRequest { - string name = 2; // 机器人名称 - string introduction = 3; // 机器人简介 - string avatar_url = 4; // 头像 URL - int32 private = 5; // 是否私有(0-公开,1-私有) -} -``` - -::: - 响应体: -```proto -message CreateBotResponse { - Status status = 1; - BotData data = 2; - - message Status { - int64 request_id = 1; - int32 code = 2; - string msg = 3; - } - - message BotData { - string bot_id = 1; // 创建的机器人 ID - } -} +```protobuf + ``` ## 设置机器人消息订阅接口 @@ -644,7 +508,7 @@ POST /v1/bot/edit-subscribed-link 请求体: -```JSONC +```JSON { "botId": "75282754", // 机器人 ID "link": "http(s)://xxxxxx", // 设置消息订阅接口(地址) @@ -654,7 +518,7 @@ POST /v1/bot/edit-subscribed-link 响应体: -```JSONC +```JSON { "code": 1, "msg": "success" @@ -673,7 +537,7 @@ POST /v1/bot/get-user-settings-json 请求体: -```JSONC +```JSON { "botId": "2468910", // 机器人 ID "chatId": "1234567" // 会话 ID(一般是群聊) @@ -682,7 +546,7 @@ POST /v1/bot/get-user-settings-json 响应体: (具体settingsJson更多解释请看[这里](/api/v1/instruction.html#%E5%88%9B%E5%BB%BA%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%8C%87%E4%BB%A4)) -```JSONC +```JSON { "code": 1, "data": { @@ -847,7 +711,7 @@ POST /v1/bot/send-setting-json 请求体: (具体settingJson更多解释请看[这里](/api/v1/instruction.html#%E5%88%9B%E5%BB%BA%E6%9C%BA%E5%99%A8%E4%BA%BA%E6%8C%87%E4%BB%A4)) -```JSONC +```JSON { "id": "12345", // 机器人 ID "groupId": "678910", // 群聊 ID @@ -857,7 +721,7 @@ POST /v1/bot/send-setting-json 响应体: -```JSONC +```JSON { "code": 1, "msg": "success" @@ -876,7 +740,7 @@ POST /v1/bot/llm/clean-content 请求体: -```JSONC +```JSON { "botId": "25637484" // 机器人 ID } @@ -884,7 +748,7 @@ POST /v1/bot/llm/clean-content 响应体: -```JSONC +```JSON { "code": 1, "msg": "success" @@ -903,7 +767,7 @@ POST /v1/bot/llm/knowledge/list 请求体: -```JSONC +```JSON { "botId": "123123123" // 机器人 ID } @@ -911,7 +775,7 @@ POST /v1/bot/llm/knowledge/list 响应体: -```JSONC +```JSON { "code": 1, "data": { @@ -951,7 +815,7 @@ POST /v1/bot/llm/knowledge/create 请求体: -```JSONC +```JSON { "botId": "123123123", // 机器人 ID "knowledgeId": 123 // 知识文件 ID @@ -960,7 +824,7 @@ POST /v1/bot/llm/knowledge/create 响应体: -```JSONC +```JSON { "code": 1, "msg": "success" @@ -979,7 +843,7 @@ POST /v1/bot/console/my-bots 响应体: -```JSONC +```JSON { "code": 1, "data": { @@ -1017,7 +881,7 @@ POST /v1/bot/group-permission-get 响应体: -```JSONC +```JSON { "code": 1, "data": { @@ -1042,7 +906,7 @@ POST /v1/bot/llm/llm-setting-ref-params 请求体: -```JSONC +```JSON { "chatId": "123123123", // 对象 ID "chatType": 2 // 对象类别 @@ -1051,7 +915,7 @@ POST /v1/bot/llm/llm-setting-ref-params 响应体: -```JSONC +```JSON { "code": 1, "data": { @@ -1073,7 +937,7 @@ POST /v1/bot/group-permission-edit 请求体: -```JSONC +```JSON { "botId": "123123", // 机器人 ID "groupId": "123123123", // 群聊 ID @@ -1086,14 +950,14 @@ POST /v1/bot/group-permission-edit 响应体: -```JSONC +```JSON { "code": 1, "msg": "success" } ``` -## 获取关注者列表 +## 获取使用者列表 ```http request POST /v1/bot/follower-list @@ -1107,70 +971,16 @@ POST /v1/bot/follower-list 请求体: -```ProtoBuf -data { - size: 20 // 分页大小 - page: 1 // 页数 -} -bot_id: "123" // 机器人 ID -keywords: "测试" // 搜索关键词 +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -message list_follower { - Data data = 2; - string bot_id = 3; // 机器人 ID - string keywords = 4; // 搜索关键词 - - message Data { - int32 size = 1; // 分页大小 - int32 page = 2; // 页数 - } -} -``` - -::: - 响应体: -```ProtoBuf -status { - request_id: 114514 - code: 1 - msg: "success" -} -user { - user_id: "7356666" // 用户 ID - name: "Feng" // 用户名 - avatar_url: "https://..." // 头像 URL - is_vip: 0 // 是否为 vip 用户, 0-不为 vip 用户, 1-vip 用户 - } -// 可以有多个 -// ... -totol: 32 // 关注该机器人的用户总数 +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -message list_follower { - Status status = 1; - repeated User user = 2; - int32 totol = 3; - - message User { - string user_id = 1; - string name = 2; - string avatar_url = 4; - int32 is_vip = 6; - } -} -``` - -::: - ## 获取加入群聊列表 ```http request @@ -1185,65 +995,13 @@ POST /v1/bot/join-group-list 请求体: -```ProtoBuf -data { - size: 20 // 分页大小 - page: 1 // 页数 -} -bot_id: "123" // 机器人 ID -keywords: "测试用户名" // 搜索关键词 +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -message list_join_group { - Data data = 2; - string bot_id = 3; // 机器人 ID - string keywords = 4; // 搜索关键词 - - message Data { - int32 size = 1; // 分页大小 - int32 page = 2; // 页数 - } -} -``` - -::: - 响应体: -```ProtoBuf -status { - request_id: 114514 - code: 1 - msg: "success" -} -group { - user_id: "123" // 群聊 ID - name: "测试群聊名称" // 群聊名字 - avatar_url: "https://..." // 头像 URL -} -// 可以有多个 -// ... -totol: 32 // 机器人加入的群聊总数 -``` - -::: details ProtoBuf 数据结构 - -```proto -message list_join_group { - Status status = 1; - repeated Group group = 2; - int32 total = 3; - - message Group { - string id = 1; - string name = 2; - string avatar_url = 3; - } - -} +```protobuf + ``` -::: diff --git a/src/api/v1/conversation.md b/src/api/v1/conversation.md index bca40e63..836271c1 100644 --- a/src/api/v1/conversation.md +++ b/src/api/v1/conversation.md @@ -42,102 +42,18 @@ POST /v1/conversation/list | ----- | ---- | ---- | | token | 是 | 无 | -请求体 - -```ProtoBuf -md5: "123123" // 上次获取对话列表的 md5,如果与服务器一致则返回空列表 -``` - -::: details ProtoBuf 数据结构 +请求体: -```proto -// 请求标识符 -message address_book_list_send { - string md5 = 2; -} +```protobuf + ``` -::: - 响应体: -```ProtoBuf -status { - request_id: 114514 - code: 1 - msg: "success" -} -data { - chat_id: "7356666" // 对象 ID - chat_type: 1 // 对象类型: 1-用户 2-群聊 3-机器人 - remark: "测试" // 备注名称 - chat_content: "我信(" // 会话内容 - timestamp_ms: 1755566778727 // 加入对话列表时间戳(毫秒) - unread_message: 1 // 是否存在未读消息 - at: 1 // 是否被 @,1 表示被 @ - avatar_id: 12345 // 头像 ID - avatar_url: "https://chat-img.jwznb.com/..." // 头像 URL - do_not_disturb: 1 // 免打扰,1 表示开启 - send_timestamp: 1755566778 // 消息发送时间戳(秒) - at_data { - unknown: 123456 // 似乎是名称 ID - mentioned_id: "7356666" // 被@的 ID - mentioned_name: "测试" // 被@人名称 - mentioned_in: "8826666" // @消息所属的对话 ID,例如群 ID - mentioner_id: "8827777" // 发起@的对象的 ID - mentioner_name: "测试" // 发起@的对象的名称 - msg_seq: 1234 // 消息序列 - } - name: "测试"; // 用户真实名称 - certification_level: 1 // 认证相关,1 是官方,2 是地区 -} -// ... -total: 8 // 会话数目 -md5: "abcdef" // 对话列表的 md5 - -``` - -::: details ProtoBuf 数据结构 - ```proto -// 列出对话 -message list { - Status status = 1; - repeated Data data = 2; - uint64 total = 3; // 列表中对话的数量 - string md5 = 4; // 对话列表的 md5 - - message Data { - string chat_id = 1; // 对象 ID - uint64 chat_type = 2; // 对象类型 - string remark = 3; // 备注名称 - string chat_content = 4; // 消息内容 - uint64 timestamp_ms = 5; // 加入对话列表时间戳(毫秒) - uint64 unread_message = 6; // 1表示有未读消息 - uint64 at = 7; // 是否被@ - uint64 avatar_id = 8; // 头像 ID - string avatar_url = 9; // 头像 URL - uint64 do_not_disturb = 11; // 免打扰 - uint64 send_timestamp = 12; // 消息发送时间戳(秒) - At_data at_data = 14; // @数据 - string name = 15; // 用户真实名称 - uint64 certification_level = 16; // 认证,1 是官方 2 是地区 - - message At_data { - uint64 unknown = 1; // 似乎是名称 ID - string mentioned_id = 2; // 被@的 ID,感觉没啥用 - string mentioned_name = 3; // 被@的名称,感觉也没啥用 - string mentioned_in = 4; // @消息所属的对话 ID(例如群 ID),感觉还没啥用 - string mentioner_id = 6; // 发起@的对象 ID - string mentioner_name = 7; // 发起@对象的名称 - uint64 msg_seq = 8; // 发起@的消息序列 - } - } -} + ``` -::: - ## 更改对话排序 POST /v1/conversation/sort-change diff --git a/src/api/v1/friend.md b/src/api/v1/friend.md index 22af5f74..b640b389 100644 --- a/src/api/v1/friend.md +++ b/src/api/v1/friend.md @@ -29,21 +29,31 @@ POST /v1/friend/apply ### 响应体 +::: tabs +@tab:active 正常添加 + ```JSON { - "code": 1, // 请求状态码,1 为正常,-1 为群聊不存在,-9 为已在群聊中 + "code": 1, "msg": "success" } ``` -::: warning - -群主无法退群,会响应: +@tab 无效对象 ID ```JSON { "code": -1, - "msg": "群主不可退群,请先转移群聊" + "msg": "<群聊/用户/机器人>不存在" +} +``` + +@tab 已在添加过对象 ID + +```JSON +{ + "code": -9, + "msg": "您已添加过对方" } ``` @@ -139,7 +149,7 @@ POST /v1/friend/ignore-apply } ``` -## 获取所有聊天对象 +## 获取通讯录 ```http request POST /v1/friend/address-book-list @@ -153,77 +163,17 @@ POST /v1/friend/address-book-list ### 请求体 -```ProtoBuf -md5: "123123" // 上次获取通讯录的 md5,如果与服务器一致则返回空列表 +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -// 请求标识符 -message address_book_list_send { - string md5 = 2; -} -``` - -::: - ### 响应体 -```ProtoBuf -status { - request_id: 114514 - code: 1 - msg: "success" -} -data { - list_name: "测试聊天对象列表名称" // 聊天对象列表名称,为"用户","我加入的群聊","机器人" - data: { - chat_id: "123" // 聊天对象 ID - chat_name: "测试聊天对象名称" // 聊天对象名称 - chat_avatar_url: "https://..." // 聊天对象头像 url - permisson_level: 2 // 群权限等级(普通用户无此项(数值为 0 或无此项),群主 100,管理员 2),只有群列表才有此项 - temp_text1 = 1 // 未知 - chat_name_up: "测试聊天对象名称" // 聊天对象名称 - } - chat_type: 1 - // ...单个列表输出完成后,连带 list_name 和 chat_type 一起重复 -} -md5: "123123" // 通讯录的 md5 +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -// 聊天对话列表 -message address_book_list { - Status status = 1; - repeated Data data = 2; - string md5 = 3; - - // 列表数据 - message Data { - string list_name = 1; // 聊天对象列表名称,为"用户","我加入的群聊","机器人" - repeated Data_list data = 2; - int32 chat_type = 3; - - // 聊天对象数据 - message Data_list { - string chat_id = 1; // 聊天对象 ID - string remark = 2; // 聊天对象备注名称 - string avatar_url = 3; // 聊天对象头像 url - int32 permisson_level = 4; // 群权限等级(普通用户无此项(数值为 0 或无此项),群主 100,管理员 2),只有群列表才有此项 - bool noDisturb = 5; // 免打扰 - //int32 field6 = 6; // 未知 - string name = 8; // 聊天对象真实名称 - } - } -} -``` - -::: - -## 获取对象请求列表 +## 获取申请/邀请列表 ```http request POST /v1/friend/request-list @@ -237,74 +187,10 @@ POST /v1/friend/request-list ### 响应体 -```ProtoBuf -status { - request_id: 114514 - code: 1 - msg: "success" -} -requests { - receiverName: "测试接收者名称" // 接收者名称 - receiverAvatar: "https://..." // 接收者头像 - name: "测试用户名称" // 请求方名称 - avatar: "https://..." // 请求方头像 - groupName: "测试群组名称" // 群组名称 - groupAvata: "https://..." // 群组头像 - inviterId: "123" // 邀请者 ID (字段8同此含义) - ourceType: 1 // 来源类型 - targetType: 1 // 目标类型 - targetId: "123" // 目标 ID - receiverId: "123" // 接收者 ID - result: 0 // 处理结果 - processedAt: 1231231230 // 处理时间戳 - inviteAt: 1231231230 // 邀请时间戳 - inviteAtStr: "1231-23-12 31:23:00" // 邀请时间字符串 - requestI: 123; // 请求 ID - botName: "测试机器人名称" // 机器人名称 - botAvatar: "https://..." // 机器人头像 - processorName: "测试处理者名称" // 处理者名称 - note: "测试对象请求" // 备注信息 -} -total: 1 // 总请求数 -pending: 0 // 待处理请求数 +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -// 对象请求列表 -message Response { - Status status = 1; - message Request { - string receiverName = 1; // 接收者名称 - string receiverAvatar = 2; // 接收者头像 - string name = 3; // 请求方名称 - string avatar = 4; // 请求方头像 - string groupName = 5; // 群组名称 - string groupAvatar = 6; // 群组头像 - string inviterId = 7; // 邀请者 ID (字段8同此含义) - int32 sourceType = 9; // 来源类型 - int32 targetType = 10; // 目标类型 - string targetId = 11; // 目标 ID - string receiverId = 12; // 接收者 ID - int32 result = 13; // 处理结果 - int64 processedAt = 14; // 处理时间戳 - int64 inviteAt = 16; // 邀请时间戳 - string inviteAtStr = 17; // 邀请时间字符串 - int32 requestId = 18; // 请求 ID - string botName = 19; // 机器人名称 - string botAvatar = 20; // 机器人头像 - string processorName = 22; // 处理者名称 - string note = 23; // 备注信息 - } - repeated Request requests = 2; // 请求列表 - int32 total = 3; // 总请求数 - int32 pending = 4; // 待处理请求数 -} -``` - -::: - ## 设置会话免打扰 ```http request diff --git a/src/api/v1/group-tag.md b/src/api/v1/group-tag.md index c690716a..1124ecbb 100644 --- a/src/api/v1/group-tag.md +++ b/src/api/v1/group-tag.md @@ -208,77 +208,12 @@ POST /v1/group-tag/members 请求体: -```ProtoBuf -data { - size: 50 // 分页大小 - page: 1 // 页数 -} -group_id: "123" // 群聊 ID -tag_id: 123 // 标签 ID -``` - -::: details ProtoBuf 数据结构 - -```proto -message tag_member_send { - Data data = 2; - message Data { - int32 size = 1; // 分页大小 - int32 page = 2; // 页数 - } - string group_id = 3; // 标签所处群聊 ID - int64 tag_id = 4; // 标签 ID -} +```protobuf + ``` -::: - 响应体: -```ProtoBuf -status { - request_id: 114514 - code: 1 - msg: "success" -} -user { - group_id: "big" // 所属群聊 ID - user_info { - user_id: "123" // 用户 ID - name: "测试用户名" // 用户名 - avatar_url: "https://..." // 头像 URL - int32 is_vip: 0 // 是否为 vip: 0-非 vip 用户,1-vip 用户 - } - permission_level: 0 // 权限等级, 群主 100 管理员 2 普通用户无/0 - gag_time: 123 // 禁言时间戳 - is_gag: 0; // 是否被禁言,0-未被禁言,1-已被禁言 -} -total: 1 // 总数 -``` - -::: details ProtoBuf 数据结构 - -```proto -// 标签绑定的用户列表 -message tag_member { - Status status = 1; - repeated User user = 2; - message User { - string group_id = 1; - User_info user_info = 2; - - message User_info { - string user_id = 1; - string name = 2; - string avatar_url = 4; - int32 is_vip = 6; - } - int32 permission_level = 3; // 权限等级, 群主 100 管理员 2 普通用户无/0 - int64 gag_time = 4; // 禁言时间戳 - int32 is_gag = 5; // 是否被禁言 - } - int64 total = 3; // 总数 -} -``` - -::: +```protobuf + +``` \ No newline at end of file diff --git a/src/api/v1/group.md b/src/api/v1/group.md index a202a8c5..bb95a336 100644 --- a/src/api/v1/group.md +++ b/src/api/v1/group.md @@ -11,157 +11,28 @@ title: group POST /v1/group/info ``` +::: warning +此处响应数据部分项目需要在打开相应开关后才会出现,例如 private 必须打开群聊私有才能在响应数据中看到. +::: + ### 请求头 | 名称 | 必须 | 备注 | | ----- | ---- | ---- | | token | 是 | 无 | -::: warning -此处响应数据部分项目需要在打开相应开关后才会出现,例如 private 必须打开群聊私有才能在响应数据中看到. -::: - ### 请求体 -```ProtoBuf -group_id: "123123" // 群聊 ID +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -message info_send { - string group_id = 2; -} -``` - -::: - ### 响应数据 -```ProtoBuf -status { - request_id: 114514 - code: 1 - msg: "success" -} -data { - id: "123" //群聊 ID - name: "测试群聊" // 群聊名称 - avatar_url: "https://..." // 头像 url - avatar_id: 123 // 头像 ID - introduction: "测试群聊" // 群聊简介 - member: 123 // 群人数 - create_by: "123" // 创建者 ID - direct_join: 0 // 进群免审核,1为开启 - permisson_level: 2 // 权限等级(普通用户无此项(数值为0或无此项),群主 100,管理员 2) - history_msg: 1 // 历史消息,1为开启 - category_name: "无" // 分类名 - category_id: 40 // 分类I D - private: 0 // 是否私有,1 为私有 - do_not_disturb: 1 // 免打扰,1 为开启 - community_id: 123 // 加入社区的 ID - community_name: "云湖" // 加入社区的名称 - top: 0 // 置顶会话,1 为开启 - admin: "123" // 管理员 ID,可以有多个 - create_time: 1231231230 // 群聊创建时间 - limited_msg_type: "" // 被限制的消息类型,如1,2,3,使用","分格 - owner: "123" // 群主 ID - recommandation: 1 // 是否加入群推荐,1 为开启 - tag_old: "冲刺一百万用户!" // 标签 - tag { - id: 123 // 标签 id - text: "" // 标签文字 - color: "#FFFFFFFF" // 标签颜色 - } - my_group_nickname: "12345" // 我的群昵称 - group_code: "test1234" // 群口令 - hide_group_members: 1 // 隐藏群成员(开启时为 1) - auto_delete_message: 730 // 消息自动销毁时间(0-永久不删,90-2个月后删除,365-1年后删除,730-2年后删除) - deny_members_upload_to_group_disk: 1 // 禁止群成员上传文件到群云盘(开启时为1) - -} -history_bot { - id: "123" // 机器人 ID - name: "测试" // 机器人名称 - name_id: 123 // 机器人名称的序列(数据库中第N个用户/机器人/群组) - avatar_url: "https://..." // 头像 URL - avatar_id: 123 // 头像 ID - introduction: "测试机器人" // 机器人简介 - create_by: "123" // 创建者 ID - create_time: 1231231230 // 创建时间戳 - user_number: 123 // 使用人数 - private: 1 // 1 表示私有机器人. -} +```protobuf + ``` -::: details ProtoBuf 数据结构 - -```proto -// 群聊信息 -message info { - Status status = 1; - Group_data data = 2; - repeated Bot_data history_bot = 3; - - // 群聊数据 - message Group_data { - string group_id = 1; - string name = 2; - string avatar_url = 3; - uint64 avatar_id = 4; // 头像 ID - string introduction = 5; - uint64 member = 6; // 群人数 - string create_by = 7; - uint64 direct_join = 8; // 进群免审核 - uint64 permisson_level = 9; // 权限等级 - uint64 history_msg = 10; // 历史消息 - string category_name = 11; // 分类名 - uint64 category_id = 12; // 分类 ID - uint64 private = 13; // 是否为私有群聊 - uint64 do_not_disturb = 14; // 免打扰 - uint64 community_id = 15; - string community_name = 16; - uint64 top = 19; // 会话置顶 - repeated string admin = 20; - uint64 create_time = 21; // 群聊创建时间 - string limited_msg_type = 22; // 被限制的消息类型,例如 1,2,3 - string owner = 23; - uint64 recommandation = 24; // 是否加入群推荐 - repeated string tag_old = 26; // 标签(旧版) - repeated Tag tag = 27; - string my_group_nickname = 28; // 我的群昵称 - string group_code = 29; // 群口令 - uint64 hide_group_members = 30; // 隐藏群成员(开启时为 1) - uint64 auto_delete_message = 32; // 消息自动销毁时间 - uint64 deny_members_upload_to_group_disk = 33; // 禁止群成员上传文件到群云盘(开启时为 1) - - // 已使用标签信息,2没啥用不解析了 - message Tag { - uint64 id = 1; // 标签 ID (貌似) - string text = 3; - string color = 4; - } - } - - // 群聊中使用过的机器人数据 - message Bot_data { - string id = 1; - string name = 2; - uint64 name_id = 3; // 机器人名称在数据库中序列,包括用户,群聊,机器人 - string avatar_url = 4; - uint64 avatar_id = 5; - string introduction = 6; - string create_by = 7; - uint64 create_time = 8; - uint64 user_number = 9; // 使用人数 - uint64 private = 10; // 是否为私有机器人 - } -} -``` - -::: - ## 获取群成员列表 ```http request diff --git a/src/api/v1/msg.md b/src/api/v1/msg.md index 8f5493c5..c2e3f33d 100644 --- a/src/api/v1/msg.md +++ b/src/api/v1/msg.md @@ -289,14 +289,10 @@ POST /v1/msg/button-report 响应体: -::: details ProtoBuf 数据结构 - ```protobuf ``` -::: - ## 撤回信息 POST /v1/msg/recall-msg @@ -315,8 +311,8 @@ POST /v1/msg/recall-msg 响应体: -```proto - +```protobuf + ``` ## 批量撤回消息 @@ -338,7 +334,7 @@ POST /v1/msg/recall-msg-batch 响应体: ```protobuf - + ``` ## 文件消息下载记录 diff --git a/src/full.proto b/src/full.proto index 632cd452..0ee2c508 100644 --- a/src/full.proto +++ b/src/full.proto @@ -16,19 +16,25 @@ enum ChatType { } enum ContentType { - unknown = 0; + unknown2 = 0; text = 1; image = 2; markdown = 3; file = 4; - form = 5; - sticker = 7; + form = 5; // 表单 + sticker = 7; // 表情 html = 8; - audio = 11; - call = 13; + audio = 11; // 语音 + call = 13; // 语音电话 a2ui = 14; } +enum ContentTypeTextOnly { + TEXT_UNSPECIFIED = 0; + TEXT_text = 1; + TEXT_markdown = 2; + TEXT_html = 3; +} // 枚举结束 // 响应状态 @@ -121,6 +127,19 @@ message Tag { string color = 4; } // #endregion Tag + +// 看板数据 +// #region BoardData +message BoardData { + string bot_id = 1; // 机器人 ID + string chat_id = 2; // 对象 ID + ChatType chat_type = 3; // 对象类别 + string content = 4; // 看板内容 + ContentTypeTextOnly content_type = 5; // 看板内容类别 + int64 last_update_time = 6; // 最后更新时间戳 + string bot_name = 7; // 设置看板机器人名称 +} +// #endregion BoardData // 共用区结束 // User 相关 @@ -240,7 +259,7 @@ message ListMsgBySeqRequest { // #region ListMsgResponse message ListMsgResponse { Status status = 1; - repeated MsgData msg_data = 2; // 消息 + repeated MsgData data = 2; // 消息数据 uint64 total = 3; // 消息数 message MsgData { @@ -327,3 +346,341 @@ message PicListMsgByMidSeqRequest { uint64 latest_quantities = 7; // 后面(消息时间较新)的图片数量 } // #endregion PicListMsgByMidSeqRequest + +// Bot + +// #region BotInfoRequest +message BotInfoRequest { + string id = 2; // 机器人 ID +} +// #endregion BotInfoRequest + +// 获取机器人信息返回信息 +// #region BotInfoResponse +message BotInfoResponse { + Status status = 1; + BotData data = 2; + message BotData { + string bot_id = 1; // 机器人 ID + string name = 2; // 机器人名称 + int64 name_id = 3; // 机器人名称 ID + string avatar_url = 4; // 机器人头像 URL + string avatar_id = 5; // 机器人头像 ID + string introduction = 6; // 机器人介绍 + string create_by = 7; // 机器人创建者 ID + int64 create_time = 8; // 机器人创建时间戳 + int64 headcount = 9; // 使用人数 + bool private = 10; // 是否为私有: 0-公开,1-私有 + bool is_stop = 11; // 是否停用: 0-启用,1-停用 + bool always_agree = 13; // 自动进群: 0-不自动进群,1-自动进群 + bool do_not_disturb = 15; // 免打扰: 0-不免打扰,1-免打扰 + bool top = 18; // 置顶: 0-未置顶,1-已置顶 + bool group_limit = 20; // 限制进群: 0-允许进群,1-限制进群 + } +} +// #endregion BotInfoResponse + +// 看板 +// #region BoardRequest +message BoardRequest { + string id = 3; // 对象 ID + ChatType chat_type = 4; // 对象类型 +} +// #endregion BoardRequest + +// 获取看板返回 +// #region BoardResponse +message BoardResponse { + Status status = 1; + BoardData data = 2; +} +// #endregion BoardResponse + +// 创建机器人 +// #region CreateBotRequest +message CreateBotRequest { + string name = 2; // 机器人名称 + string introduction = 3; // 机器人简介 + string avatar_url = 4; // 头像 URL + bool private = 5; // 是否私有(0-公开,1-私有) +} +// #endregion CreateBotRequest + +// #region CreateBotResponse +message CreateBotResponse { + Status status = 1; + BotData data = 2; + + message BotData { + string bot_id = 1; // 创建的机器人 ID + } +} +// #endregion CreateBotResponse + +// 获取使用者列表 +// #region ListFollowerRequest +message ListFollowerRequest { + Data data = 2; + string bot_id = 3; // 机器人 ID + string keywords = 4; // 搜索关键词 + + message Data { + int32 size = 1; // 分页大小 + int32 page = 2; // 页数 + } +} +// #endregion ListFollowerRequest + +// #region ListFollowerResponse +message ListFollowerResponse { + Status status = 1; + repeated User user = 2; + int32 totol = 3; // 总数 + + message User { + string user_id = 1; // 用户 ID + string name = 2; // 昵称 + string avatar_url = 4; // 头像 URL + bool is_vip = 6; // 是否 VIP + } +} +// #endregion ListFollowerResponse + +// 获取加入的群列表 +// #region JoinGroupListRequest +message JoinGroupListRequest { + Data data = 2; + string bot_id = 3; // 机器人 ID + string keywords = 4; // 搜索关键词 + + message Data { + int32 size = 1; // 分页大小 + int32 page = 2; // 页数 + } +} +// #endregion JoinGroupListRequest + +// #region JoinGroupListResponse +message JoinGroupListResponse { + Status status = 1; + repeated Group group = 2; + int32 total = 3; // 总数 + + message Group { + string id = 1; // 群聊 ID + string name = 2; // 群聊名称 + string avatar_url = 3; // 头像 URL + } +} +// #endregion JoinGroupListResponse + +// Conversation + +// 获取对话列表 +// #region ConversationListRequest +message ConversationListRequest { + string md5 = 2; // 上次获取对话的 MD5, 如果与服务端一致则返回空列表 +} +// #endregion ConversationListRequest + +// 列出对话 +// #region ConversationListResponse +message ConversationListResponse { + Status status = 1; + repeated Data data = 2; + uint64 total = 3; // 列表中对话的数量 + string md5 = 4; // 对话列表的 md5 + + message Data { + string chat_id = 1; // 对象 ID + ChatType chat_type = 2; // 对象类型 + string remark = 3; // 备注名称 + string chat_content = 4; // 消息内容 + uint64 timestamp_ms = 5; // 加入对话列表时间戳(毫秒) + int32 unread_msg = 6; // 未读消息数 + bool at = 7; // 是否被@ + uint64 avatar_id = 8; // 头像 ID + string avatar_url = 9; // 头像 URL + bool do_not_disturb = 11; // 免打扰 + uint64 send_timestamp = 12; // 消息发送时间戳(秒) + AtData at_data = 14; // @数据 + string name = 15; // 用户真实名称 + int32 certification_level = 16; // 认证,1 是官方 2 是地区 + + message AtData { + uint64 unknown = 1; // 似乎是名称 ID + string mentioned_id = 2; // 被@的 ID,感觉没啥用 + string mentioned_name = 3; // 被@的名称,感觉也没啥用 + string mentioned_in = 4; // @消息所属的对话 ID(例如群 ID),感觉还没啥用 + string mentioner_id = 6; // 发起@的对象 ID + string mentioner_name = 7; // 发起@对象的名称 + uint64 msg_seq = 8; // 发起@的消息序列 + } + } +} +// #endregion ConversationListResponse + +// Friend +// #region AddressBookListRequest +message AddressBookListRequest { + string md5 = 2; // 上一次通讯录的 MD5,如果和服务端一致则返回空列表 +} +// #endregion AddressBookListRequest + +// 聊天对话列表 +// #region AddressBookListResponse +message AddressBookListResponse { + Status status = 1; + repeated Data data = 2; + string md5 = 3; + + // 列表数据 + message Data { + string list_name = 1; // 聊天对象列表名称,为"用户","我加入的群聊","机器人" + repeated DataList data = 2; + ChatType chat_type = 3; + + // 聊天对象数据 + message DataList { + string chat_id = 1; // 聊天对象 ID + string remark = 2; // 聊天对象备注名称 + string avatar_url = 3; // 聊天对象头像 url + int32 permisson_level = 4; // 群权限等级(普通用户无此项(数值为 0 或无此项),群主 100,管理员 2),只有群列表才有此项 + bool no_disturb = 5; // 免打扰 + //int32 field6 = 6; // 未知 + string name = 8; // 聊天对象真实名称 + } + } +} +// #endregion AddressBookListResponse + +// 申请/邀请列表 +// #region RequestListResponse +message RequestListResponse { + Status status = 1; + message Request { + string receiver_name = 1; // 接收者名称 + string receiver_avatar = 2; // 接收者头像 + string name = 3; // 请求方名称 + string avatar = 4; // 请求方头像 + string group_name = 5; // 群组名称 + string group_avatar = 6; // 群组头像 + string inviter_id = 7; // 邀请者 ID (字段8同此含义) + int32 source_type = 9; // 来源类型 + int32 target_type = 10; // 目标类型 + string target_id = 11; // 目标 ID + string receiver_id = 12; // 接收者 ID + int32 result = 13; // 处理结果 + int64 processed_at = 14; // 处理时间戳 + int64 invite_at = 16; // 邀请时间戳 + string invite_at_str = 17; // 邀请时间字符串 + int32 request_id = 18; // 请求 ID + string bot_name = 19; // 机器人名称 + string bot_avatar = 20; // 机器人头像 + string processor_name = 22; // 处理者名称 + string note = 23; // 备注信息 + } + repeated Request requests = 2; // 请求列表 + int32 total = 3; // 总请求数 + int32 pending = 4; // 待处理请求数 +} +// #endregion RequestListResponse + +// group-tag +// #region TagMemberRequest +message TagMemberRequest { + Data data = 2; + message Data { + int32 size = 1; // 分页大小 + int32 page = 2; // 页数 + } + string group_id = 3; // 标签所处群聊 ID + int64 tag_id = 4; // 标签 ID +} +// #endregion TagMemberRequest + +// #region TagMemberResponse +message TagMemberResponse { + Status status = 1; + repeated User user = 2; + message User { + string group_id = 1; + UserInfo user_info = 2; + + message UserInfo { + string user_id = 1; + string name = 2; + string avatar_url = 4; + bool is_vip = 6; + } + int32 permission_level = 3; // 权限等级, 群主 100 管理员 2 普通用户无/0 + int64 gag_time = 4; // 禁言时间戳 + bool is_gag = 5; // 是否被禁言 + } + int32 total = 3; // 总数 +} +// #endregion TagMemberResponse + +// group + +// 获取群聊信息 +// #region GroupInfoRequest +message GroupInfoRequest { + string group_id = 2; // 群聊 ID +} +// #endregion GroupInfoRequest + +// #region GroupInfoResponse +message GroupInfoResponse { + Status status = 1; + GroupData data = 2; + repeated BotData bot = 3; + + // 群聊数据 + message GroupData { + string group_id = 1; + string name = 2; + string avatar_url = 3; + uint64 avatar_id = 4; // 头像 ID + string introduction = 5; + uint64 member = 6; // 群人数 + string create_by = 7; // 创建者 + bool direct_join = 8; // 进群免审核 + int32 permisson_level = 9; // 权限等级 + bool history_msg = 10; // 历史消息 + string category_name = 11; // 分类名 + uint64 category_id = 12; // 分类 ID + bool private = 13; // 是否为私有群聊 + bool do_not_disturb = 14; // 免打扰 + uint64 community_id = 15; // 加入的社区 ID + string community_name = 16; // 加入的社区名 + bool top = 19; // 会话置顶 + repeated string admin = 20; // 管理员列表 + uint64 create_time = 21; // 群聊创建时间 + string limited_msg_type = 22; // 被限制的消息类型,例如 1,2,3 + string owner = 23; // 群主 + bool recommandation = 24; // 是否加入群推荐 + repeated string tag_old = 26; // 标签(旧版) + repeated Tag tag = 27; + string my_group_nickname = 28; // 我的群昵称 + string group_code = 29; // 群口令 + bool hide_group_members = 30; // 隐藏群成员(开启时为 1) + bool auto_delete_message = 32; // 消息自动销毁时间 + bool deny_members_upload_to_group_disk = 33; // 禁止群成员上传文件到群云盘(开启时为 1) + } + + // 群聊中使用过的机器人数据 + message BotData { + string id = 1; + string name = 2; + uint64 name_id = 3; // 机器人名称在数据库中序列,包括用户,群聊,机器人 + string avatar_url = 4; + uint64 avatar_id = 5; + string introduction = 6; + string create_by = 7; // 创建者 + uint64 create_time = 8; + uint64 headcount = 9; // 使用人数 + bool private = 10; // 是否为私有机器人 + } +} +// #endregion GroupInfoResponse