Q&A
以下内容是针对一些问题的解答。未尽之处,欢迎加入 QQ 群 讨论相关细节。
WebHook 真的没办法鉴权吗?
虽然上一页的标准中提到了 WebHook 不支持鉴权,但应用端仍然可以通过一些变通的方式在 URL 中包含认证信息,例如:
- 包含在随机端点中,例如监听
/webhook/e596b5e596b5efbc8ce59295e5999ce59295e5999c; - 包含在 URL query 中,例如检查
/webhook?access_token=5Za15Za177yM5ZKV5Zmc5ZKV5Zmc中的access_token字段。
无论采用何种方式,认证信息应该以 URL 的形式写入协议端的相关配置文件。
message_seq 是否相当于 OneBot 11 中的 message_id?
省流:message_scene + peer_id + message_seq = 完整版 message_id。
message_seq 不是“大号的 message_id”,而是一个自增的数字,表示消息在当前会话中的顺序,对于每个会话(好友或群聊)都是独立的。Milky 用 message_scene、peer_id 和 message_seq 组合来唯一标识一条消息。其中:
message_scene是一个字符串,表示消息的场景(例如:好友、群聊等)peer_id是一个数字,表示会话的 ID。对于好友消息,peer_id是好友的 QQ 号;对于群消息,peer_id是群号。
OneBot 11 则使用 message_id 来唯一标识一条消息。
消息撤回(recall)和戳一戳(nudge)的事件推送中 display_ 开头的字段指的是什么?
假如一条消息撤回的提示如下:
Salt 撤回了一条消息,并假装无事发生。那么其对应的 message_recall 事件中的 display_suffix 字段是 并假装无事发生。。
假如一条戳一戳的提示如下:
Milk 戳了戳 Shama 的……。不许戳啦!那么其对应的 message_nudge 事件中的 display_action 字段是 戳了戳,display_suffix 字段是 的……。不许戳啦!。
file 消息段和 file_upload 事件是同一个东西吗?
是的,包含在消息中的 file 消息段和 friend_file_upload、group_file_upload 事件上报的内容是相同的,都是表示好友 / 群成员上传了文件,两者的字段和含义也完全一致。协议端在收到文件消息后,需要同时推送包含 file 消息段的 IncomingMessage 和 {friend,group}_file_upload 事件,应用端可以按需处理。
二者的主要不同在于用途:前者方便在拉取消息时获取文件信息,后者方便在 event 驱动的应用中处理用户上传的文件。
image、record 和 video 消息段分别支持哪些格式?
image:协议端至少需要支持JPG、PNG、GIF、BMP、WEBP格式的图片;record:QQ 使用的语音格式是 SILK 。在发送时,协议端至少需要支持WAV和MP3格式到SILK的转码;video:协议端至少需要支持MP4格式的视频,并且在用户未提供thumb_uri时从视频中截取一帧作为缩略图。
face_id 都有哪些?
以下页面整理了可用的 QQ 表情 ID 列表,供参考: