频道消息相关接口列表

本文档主要列出频道消息相关接口。

本文档中的接口均符合接口规范,如有疑问,建议先查阅接口引言

接口 接口说明 维护状态
/api/v3/message/list 获取频道聊天消息列表 正常
/api/v3/message/view 获取频道聊天消息详情 正常
/api/v3/message/create 发送频道聊天消息 正常
/api/v3/message/update 更新频道聊天消息 正常
/api/v3/message/delete 删除频道聊天消息 正常
/api/v3/message/reaction-list 获取频道消息某个回应的用户列表 正常
/api/v3/message/add-reaction 给某个消息添加回应 正常
/api/v3/message/delete-reaction 删除消息的某个回应 正常

消息详情参数说明

参数名 类型 说明
id string 消息 id
type int 消息类型
author map 作者的用户信息
content string 消息内容(为了保障消息正常发出,请不要超过 8000 字符)
mention array @特定用户 的用户 ID 数组,与 mention_info 中的数据对应
mention_all boolean 是否含有 @全体人员
mention_roles array @特定角色 的角色 ID 数组,与 mention_info 中的数据对应
mention_here boolean 是否含有 @在线人员
embeds array 超链接解析数据
attachments map 附加的多媒体数据 参考对象-Attachments
reactions array 回应数据
quote map 引用消息 参考对象-Quote
mention_info map 引用特定用户或特定角色的信息
» mention_part array @特定用户 详情
» mention_role_part array @特定角色 详情

获取频道聊天消息列表

接口说明

地址 请求方式 说明
/api/v3/message/list GET 此接口非标准分页,需要根据参考消息来查询相邻分页的消息

参数列表

参数名 类型 必传 参数区域 说明
target_id string GET 频道 id
msg_id string GET 参考消息 id,不传则查询最新消息
pin unsigned int GET 只能为 0 或者 1,是否查询置顶消息。 置顶消息只支持查询最新的消息
flag string GET 查询模式,有三种模式可以选择。不传则默认查询最新的消息
page_size int GET 当前分页消息数量, 默认 50

查询模式说明

查询模式 详细说明
before 查询参考消息之前的消息,不包括参考消息。
around 查询以参考消息为中心,前后一定数量的消息。
after 查询参考消息之后的消息,不包括参考消息。

返回参数说明

参数名 类型 说明
items array 消息列表

返回示例

  1. {
  2. "code": 0,
  3. "message": "操作成功",
  4. "data": {
  5. "items": [
  6. {
  7. "id": "bac34958-2c73-45c8",
  8. "type": 1,
  9. "content": "11111111111111111111111",
  10. "mention": ["12314**"],
  11. "mention_all": false,
  12. "mention_roles": [],
  13. "mention_here": false,
  14. "embeds": [
  15. {
  16. "type": "bili-video",
  17. "url": "https://www.bilibili.com/video/XXXXX",
  18. "origin_url": "https://www.bilibili.com/video/XXXXX",
  19. "av_no": "11J411E",
  20. "iframe_path": "https://player.bilibili.com/player.html?xxx=xxx",
  21. "duration": 97,
  22. "title": "Title",
  23. "pic": "https://**/lc01gi.jpg"
  24. }
  25. ],
  26. "attachments": null,
  27. //文件
  28. // "attachments": {
  29. // "type": "file",
  30. // "url": "https://xxx.txt",
  31. // "name": "***.txt",
  32. // "file_type": "text/plain",
  33. // "size": 540579
  34. // },
  35. //视频
  36. // "attachments": {
  37. // "type": "video",
  38. // "url": "https://xxxxx.mp4",
  39. // "name": "***.mp4",
  40. // "duration": 15.472,
  41. // "size": 2575670,
  42. // "width": 480,
  43. // "height": 960
  44. // },
  45. "create_at": 1612685332518,
  46. "updated_at": 0,
  47. "reactions": [
  48. {
  49. "emoji": {
  50. "id": "[#129315;]",
  51. "name": "[#129315;]"
  52. },
  53. "count": 1,
  54. "me": true
  55. }
  56. ],
  57. "author": {
  58. "id": "1780328444",
  59. "username": "小博",
  60. "online": false,
  61. "avatar": "https://***.jpg"
  62. },
  63. "image_name": "",
  64. "read_status": false,
  65. "quote": null,
  66. //引用消息
  67. // "quote": {
  68. // "id": "1c4532f6-********-1234-6347f410f91c",
  69. // "type": 1,
  70. // "content": "hello World",
  71. // "create_at": 1628069285358,
  72. // "author": {
  73. // "id": "308****000",
  74. // "username": "盖 伦",
  75. // "identify_num": "**10",
  76. // "online": true,
  77. // "os": "Websocket",
  78. // "status": 1,
  79. // "avatar": "https://***.jpg/icon",
  80. // "vip_avatar": "",
  81. // "nickname": "***11377",
  82. // "roles": [
  83. // 102,
  84. // 816
  85. // ],
  86. // "is_vip": false,
  87. // "bot": false,
  88. // "mobile_verified": true,
  89. // "joined_at": 1573816459000,
  90. // "active_time": 1628229821490
  91. // }
  92. // },
  93. "mention_info": {
  94. "mention_part": [
  95. {
  96. "id": "28444",
  97. "username": "**",
  98. "full_name": "**#49",
  99. "avatar": "***.jpg"
  100. }
  101. ],
  102. "mention_role_part": [
  103. {
  104. "role_id": 702,
  105. "name": "管理员",
  106. "color": 0,
  107. "position": 1,
  108. "hoist": 0,
  109. "mentionable": 0,
  110. "permissions": 1
  111. }
  112. ]
  113. }
  114. }
  115. ]
  116. }
  117. }

获取频道聊天消息详情

接口说明

地址 请求方式 说明
/api/v3/message/view GET

参数列表

参数名 类型 必传 参数区域 说明
msg_id string GET 消息 id

返回参数说明

参考 消息详情参数说明

返回示例

  1. {
  2. "code": 0,
  3. "message": "操作成功",
  4. "data": {
  5. "id": "058a5f2d-329f-******-f2e156148716",
  6. "type": 9,
  7. "content": "(met)1780***(met) (met)hell(met) (met)all(met) (rol)702(rol) (rol)711(rol)",
  8. "mention": ["1780***"],
  9. "mention_all": true,
  10. "mention_roles": [],
  11. "mention_here": false,
  12. "embeds": [],
  13. "attachments": null,
  14. "create_at": 1614922734322,
  15. "updated_at": 0,
  16. "reactions": [],
  17. "author": {
  18. "id": "1780***",
  19. "username": "**",
  20. "identify_num": "5788",
  21. "online": false,
  22. "os": "Websocket",
  23. "status": 1,
  24. "avatar": "**",
  25. "vip_avatar": "**",
  26. "banner": "",
  27. "nickname": "**",
  28. "roles": [],
  29. "is_vip": true,
  30. "bot": false
  31. },
  32. "image_name": "",
  33. "read_status": false,
  34. "quote": null,
  35. "mention_info": {
  36. "mention_part": [],
  37. "mention_role_part": []
  38. }
  39. }
  40. }

发送频道聊天消息

接口说明

此接口与频道相关接口下的 发送频道聊天消息 功能相同。

注意: 强列建议过滤掉机器人发送的消息,再进行回应。否则会很容易形成两个机器人循环自言自语导致发送量过大,进而导致机器人被封禁。如果确实需要机器人联动的情况,慎重进行处理,防止形成循环。

地址 请求方式 说明
/api/v3/message/create POST

参数列表

参数名 类型 必传 参数区域 说明
type int POST 消息类型, 见[type], 不传默认为 1, 代表文本类型。 9 代表 kmarkdown 消息, 10 代表卡片消息
target_id string POST 目标频道 id
content string POST 消息内容
quote string POST 回复某条消息的 msgId
nonce string POST nonce, 服务端不做处理, 原样返回
temp_target_id string POST 用户 id,如果传了,代表该消息是临时消息,该消息不会存数据库,但是会在频道内只给该用户推送临时消息。用于在频道内针对用户的操作进行单独的回应通知等。

返回参数说明

参数名 类型 说明
msg_id string 服务端生成的消息 id
msg_timestamp int 消息发送时间(服务器时间戳)
nonce string 随机字符串,见参数列表

返回示例

  1. {
  2. "code": 0,
  3. "message": "操作成功",
  4. "data": {
  5. "msg_id": "50974c-364c983fa6cb",
  6. "msg_timestamp": 1607072537177,
  7. "nonce": "xxxx"
  8. }
  9. }

更新频道聊天消息

接口说明

目前支持消息 type9、10 的修改,即 KMarkdown 和 CardMessage

地址 请求方式 说明
/api/v3/message/update POST

参数列表

参数名 类型 必传 参数区域 说明
msg_id string POST 消息 id
content string POST 消息内容
quote string POST 回复某条消息的 msgId。如果为空,则代表删除回复,不传则无影响。
temp_target_id string POST 用户 id,针对特定用户临时更新消息,必须是正常消息才能更新。与发送临时消息概念不同,但同样不保存数据库。

返回参数说明

无返回参数

返回示例

  1. {
  2. "code": 0,
  3. "message": "操作成功",
  4. "data": []
  5. }

删除频道聊天消息

接口说明

普通用户只能删除自己的消息,有权限的用户可以删除权限范围内他人的消息。

地址 请求方式 说明
/api/v3/message/delete POST

参数列表

参数名 类型 必传 参数区域 说明
msg_id string POST 消息 id

返回参数说明

无返回参数

返回示例

  1. {
  2. "code": 0,
  3. "message": "操作成功",
  4. "data": []
  5. }

获取频道消息某回应的用户列表

接口说明

地址 请求方式 说明
/api/v3/message/reaction-list GET

参数列表

参数名 类型 必传 参数区域 说明
msg_id string GET 频道消息的 id
emoji string GET emoji 的 id, 可以为 GuilEmoji 或者 Emoji, 注意:在 get 中,应该进行 urlencode

返回参数说明

返回的是用户的列表,参数如下:

参数名 类型 说明
id string 用户的 id
username string 用户的名称
nickname string 用户在服务器内的呢称
identify_num string 用户名的认证数字,用户名正常为:user_name#identify_num
online boolean 当前是否在线
status int 用户的状态, 0 和 1 代表正常,10 代表被封禁
avatar string 用户的头像的 url 地址
bot boolean 用户是否为机器人
reaction_time intval 用户点击 reaction 的毫秒时间戳

返回示例

  1. {
  2. "code": 0,
  3. "message": "操作成功",
  4. "data": {
  5. {
  6. "id": "xxxx",
  7. "username": "test",
  8. "identify_num": "xxx",
  9. "online": false,
  10. "status": 0,
  11. "avatar": "xxxx",
  12. "bot": true,
  13. "tag_info": {
  14. "color": "#34A853",
  15. "text": "机器人"
  16. },
  17. "nickname": "xxxx",
  18. "reaction_time": 1612323994414
  19. }
  20. }
  21. }

给某个消息添加回应

接口说明

地址 请求方式 说明
/api/v3/message/add-reaction POST

参数列表

参数名 类型 必传 参数区域 说明
msg_id string POST 频道消息的 id
emoji string POST emoji 的 id, 可以为 GuilEmoji 或者 Emoji

返回参数说明

无返回参数

返回示例

  1. {
  2. "code": 0,
  3. "message": "操作成功",
  4. "data": []
  5. }

删除消息的某个回应

接口说明

地址 请求方式 说明
/api/v3/message/delete-reaction POST

参数列表

参数名 类型 必传 参数区域 说明
msg_id string POST 频道消息的 id
emoji string POST emoji 的 id, 可以为 GuilEmoji 或者 Emoji
user_id string POST 用户的 id, 如果不填则为自己的 id。删除别人的 reaction 需要有管理频道消息的权限

返回参数说明

无返回参数

返回示例

  1. {
  2. "code": 0,
  3. "message": "操作成功",
  4. "data": []
  5. }