概述
OneBot 接口定义描述了一组标准事件、动作、消息段和它们的扩展规则。
如果将 OneBot Connect 类比于 C 语言的语法,规定了用户可以怎么用,则接口定义对应 C 语言标准库和标准库扩展的命名规则,描述了用户能用什么,以及实现可以如何扩展标准库。
对 OneBot 实现的要求
事件
必须实现所有标准元事件。
如果实现了一个标准事件,则必须实现这个事件的所有标准定义字段。
如果确实有字段在机器人平台没有对应值,应该使用对应类型的空值。
动作
必须实现所有标准元动作。
如果实现了一个标准动作,则建议支持标准定义的所有参数,必须支持标准定义的所有响应字段。
既然能实现一个标准动作,说明这个动作的大部分语义是可以实现的,对于实在无法实现的参数,建议返回 10004 Unsupported Param
返回码,如果参数不重要,也可以忽略。
如果没有实现某个动作,应该返回 10002 Unsupported Action
返回码。
除了 get_latest_events
外,实现了的其它所有动作必须在 get_supported_actions
元动作的响应数据中列出。
消息段
如果实现了一个标准消息段,则建议支持标准定义的所有参数。
与动作类似,对于实在无法实现的参数,建议返回 10007 Unsupported Segment Data
返回码,如果参数不重要,也可以忽略。
如果没有实现某个要发送的消息段,应该返回 10005 Unsupported Segment
返回码。
如果由于机器人平台的限制,导致某个消息段无法发送成功,建议返回表示“部分消息发送失败”的 34xxx
返回码,如果实在难以检测到失败,也可以忽略。
如果整条消息都无法发送成功,建议返回表示“消息发送失败”的 34xxx
返回码,如果实在难以检测到失败,也可以忽略。