KarinJS / kritor

新时代统一的聊天机器人应用接口标准

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

希望加入类似passive_id的东西

super1207 opened this issue · comments

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

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

koishi(satori)中也有类似的东西:
satorijs/satori#234

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

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才能调用了吧

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

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