KarinJS / kritor

新时代统一的聊天机器人应用接口标准
64 stars 4 forks source link

希望加入类似passive_id的东西 #5

Closed super1207 closed 6 months ago

super1207 commented 6 months ago

在一些平台,如官方QQ频道,发送"被动消息",或者调用一些API,需要指明事件ID(或消息ID)。

下面是QQ官方BOT对此的描述: image

koishi(satori)中也有类似的东西: https://github.com/satorijs/satori/pull/234

希望所有事件都能有一个事件ID,然后在调用api的时候,可以可选的传入一个passive_id,以指明是对哪个事件进行的回应。

Simplxss commented 6 months ago

passive_id实际上已经有对应的实现了 在message_event有message_id, request_event有request_id, notice_event中会视情况提供message_id 如果是被动消息的话 可以直接用reply_element来表示所回复的消息 如果是入群请求等等 可以直接使用request_id来进行操作

notice_event目前协议这边是没有id字段的 如果要兼容官方bot我可以在notice_event加上可选的notice_id字段 然后在reply_element中加上request_id和notice_id来表示对非消息事件的回应

除了入群请求操作和被动消息应该没有其他的api需要使用passive_id才能调用了吧

super1207 commented 6 months ago

嗯,应该也只有被动发消息需要这个passive_id了。不过,放reply元素里面似乎有点点别扭。reply在qq上是一个可见的元素,有时候对消息进行响应的时候,并不希望发送这个可见元素。

super1207 commented 6 months ago

发消息需要passive_id是官方qqbot独有的一个隐藏行为,如果插件总是插入这个可见元素的话,会使得非官方的qqbot有些困扰