botuniverse / onebot

OneBot:统一的聊天机器人应用接口标准

Home Page:https://onebot.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

增加 platform_time 字段

idranme opened this issue · comments

  • 状态:关闭
  • 相关 PR:无

摘要

为所有事件增加 platform_time 字段,表示 OneBot 实现平台产生事件的时间,在元事件里可以为空。

动机

在例如 Telegram 等聊天平台的 API 提供的时间不一定跟 OneBot 事件产生时间相同,因此增加此字段用以跟 OneBot 事件产生时间区分。

具体描述

字段名 数据类型 说明
id string 事件唯一标识符
impl string OneBot 实现名称,格式 [_a-z]+
platform string OneBot 实现平台名称,格式 [_a-z]+
self_id string 机器人自身 ID
time float64 OneBot 实现事件发生时间(Unix 时间戳),单位:秒
type string 事件类型,必须是 metamessagenoticerequest 中的一个,分别表示元事件、消息事件、通知事件和请求事件
detail_type string 事件详细类型
sub_type string 事件子类型(详细类型的下一级类型)
platform_time int64 OneBot 实现平台事件发生时间(时间戳)

局限

替代方案

time 本来的意思就是事件真实发生的时间,这个新增字段感觉好像意义不是很明确?

如果某 IM 平台无法拿到实际发生的时间,那新增字段无意义;如果能拿到,那就应该直接在 time 字段给出

time 本来的意思就是事件真实发生的时间,这个新增字段感觉好像意义不是很明确?

如果某 IM 平台无法拿到实际发生的时间,那新增字段无意义;如果能拿到,那就应该直接在 time 字段给出

平台事件发生的时间与 OneBot 事件发生的时间不一定一致,还是区分下比较好。

time 本来的意思就是事件真实发生的时间,这个新增字段感觉好像意义不是很明确?
如果某 IM 平台无法拿到实际发生的时间,那新增字段无意义;如果能拿到,那就应该直接在 time 字段给出

平台事件发生的时间与 OneBot 事件发生的时间不一定一致,还是区分下比较好。

我的意思是,记录 OneBot 实现产生这个事件的时间没啥意义,time 字段本来就应该是平台事件发生时间

time 本来的意思就是事件真实发生的时间,这个新增字段感觉好像意义不是很明确?
如果某 IM 平台无法拿到实际发生的时间,那新增字段无意义;如果能拿到,那就应该直接在 time 字段给出

平台事件发生的时间与 OneBot 事件发生的时间不一定一致,还是区分下比较好。

我的意思是,记录 OneBot 实现产生这个事件的时间没啥意义,time 字段本来就应该是平台事件发生时间

确实,那应该就是表述的问题了。原有对 time 的说明有歧义。

已提交新 RFC 来明确 time 字段说明