Websocket Adapter

提供基于 websocket server 的接口

配置文件

adapterSettings:
  ws:
    ## websocket server 监听的本地地址
    ## 一般为 localhost 即可, 如果多网卡等情况,自定设置
    host: localhost

    ## websocket server 监听的端口
    ## 与 http server 可以重复, 由于协议与路径不同, 不会产生冲突
    port: 8080

    ## websocket 用于消息同步的字段为 syncId, 一般值为请求时的原值,用于同步一次请求与响应
    ## 对于由 websocket server 主动发出的通知, 固定使用一个 syncId, 默认为 ”-1“
    reservedSyncId: -1

接口一览

专有接口

专有接口为该 adapter 特有的接口


通用接口

通用接口为所有 built-in adapter 公用的数据规范, 该文档定义了不同 adapter 的具体调用方式

认证与会话

ws adapter 采用一步认证, 参数通过 header 或者 url 参数传递 在 ws adapter 中, websocket 一经连接, 便绑定到固定 session, 后续不需再次传递 sessionKey 参数

名字类型举例说明
verifyKeyString"1234567890"verifyKey, 配置文件中指定
sessionKeyString"UnVerifiedSession"新建连接 或 singleMode 模式下为空, 通过已有 sessionKey 连接时不可为空
qqLong12345678绑定的账号, singleMode 模式下为空, 非 singleMode 下新建连接不可为空

ws adatper 不允许复用 sessionKey, 建立连接时, 会同时关闭同一个”通道“中的旧 websocket. 但可以同其他 adapter 复用

连接连接后,ws adapter 会立即返回 sessionKey

{
  "syncId": "",
  "data": {
    "code": 0,
    "session": "YourSessionKey"
  }
}

接收消息与事件

创建连接

ws adatper 通过 websocket 主动推送消息与事件

ws adatper 拥有三个连接通道

  • /message: 推送消息
  • /event: 推送事件
  • /all: 推送消息及事件

示例: ws://localhost:8080/message?verifyKey=1234567890&qq=12345678

数据格式

ws adapter 采用 json 文本格式进行数据传输

传入格式

{
  "syncId": 123,                  // 消息同步的字段
  "command": "sendFriendMessage", // 命令字
  "subCommand": null,             // 子命令字, 可空
  "content": {}                   // 命令的数据对象, 与通用接口定义相同
}

推送格式

{
  "syncId": "123",  // 消息同步的字段
  "data": {}      // 推送消息内容, 与通用接口定义相同
}

相关阅读:

获取插件信息

关于

使用此方法获取插件的信息,如版本号

命令字: about

通用接口定义: 获取插件信息

获取登录账号

使用此方法获取所有当前登录账号

命令字: botList

通用接口定义: 获取登录账号

缓存操作

通过messageId获取消息

此方法通过 messageId 获取历史消息, 历史消息的缓存有容量大小, 在配置文件中设置

命令字: messageFromId

通用接口定义: 通过messageId获取消息

获取账号信息

获取好友列表

使用此方法获取bot的好友列表

命令字: friendList

通用接口定义: 获取好友列表

获取群列表

使用此方法获取bot的群列表

命令字: groupList

通用接口定义: 获取群列表

获取群成员列表

使用此方法获取bot指定群中的成员列表

命令字: memberList

通用接口定义: 获取群成员列表

获取Bot资料

此接口获取 session 绑定 bot 的详细资料

命令字: botProfile

通用接口定义: 获取Bot资料

获取好友资料

此接口获取好友的详细资料

命令字: friendProfile

通用接口定义: 获取好友资料

获取群成员资料

此接口获取群成员的消息资料

命令字: memberProfile

通用接口定义: 获取群成员资料

获取QQ用户资料

此接口获取获取QQ用户资料

命令字: userProfile

通用接口定义: 获取QQ用户资料

消息发送与撤回

发送好友消息

使用此方法向指定好友发送消息

命令字: sendFriendMessage

通用接口定义: 发送好友消息

发送群消息

命令字: sendGroupMessage

通用接口定义: 发送群消息

发送临时会话消息

命令字: sendTempMessage

通用接口定义: 发送临时会话消息

发送头像戳一戳消息

命令字: sendNudge

通用接口定义: 发送头像戳一戳消息

撤回消息

命令字: recall

通用接口定义: 撤回消息

获取漫游消息

命令字: roamingMessages

通用接口定义: 获取漫游消息

文件操作

查看文件列表

命令字: file_list

通用接口定义: 查看文件列表

获取文件信息

命令字: file_info

通用接口定义: 获取文件信息

创建文件夹

命令字: file_mkdir

通用接口定义: 创建文件夹

删除文件

命令字: file_delete

通用接口定义: 删除文件

移动文件

命令字: file_move

通用接口定义: 移动文件

重命名文件

命令字: file_rename

通用接口定义: 重命名文件

多媒体内容上传

图片文件上传

(未施工)

语音文件上传

(未施工)

群文件上传

(未施工)

账号管理

删除好友

使用此方法删除指定好友

命令字: deleteFriend

通用接口定义: 删除好友

群管理

禁言群成员

使用此方法指定群禁言指定群员(需要有相关限权)

命令字: mute

通用接口定义: 禁言群成员

解除群成员禁言

使用此方法指定群解除群成员禁言(需要有相关限权)

命令字: unmute

通用接口定义: 解除群成员禁言

移除群成员

使用此方法移除指定群成员(需要有相关限权)

命令字: kick

通用接口定义: 移除群成员

退出群聊

使用此方法使Bot退出群聊

命令字: quit

通用接口定义: 退出群聊

全体禁言

使用此方法令指定群进行全体禁言(需要有相关限权)

命令字: muteAll

通用接口定义: 全体禁言

解除全体禁言

使用此方法令指定群解除全体禁言(需要有相关限权)

命令字: unmuteAll

通用接口定义: 解除全体禁言

设置群精华消息

使用此方法添加一条消息为精华消息(需要有相关限权)

命令字: setEssence

通用接口定义: 设置群精华消息

获取群设置

使用此方法获取群设置

命令字: groupConfig
子命令字: get

通用接口定义: 获取群设置

修改群设置

使用此方法修改群设置(需要有相关限权)

命令字: groupConfig
子命令字: update

通用接口定义: 修改群设置

获取群员设置

使用此方法获取群员设置

命令字: memberInfo
子命令字: get

通用接口定义: 获取群员设置

修改群员设置

使用此方法修改群员设置(需要有相关限权)

命令字: memberInfo
子命令字: update

通用接口定义: 修改群员设置

修改群员管理员

使用此方法修改群员的管理员权限(需要有群主限权)

命令字: memberAdmin

通用接口定义: 修改群员管理员

群公告

获取群公告

此方法获取指定群公告列表

命令字: anno_list

通用接口定义: 获取群公告

发布群公告

此方法向指定群发布群公告

命令字: anno_publish

通用接口定义: 发布群公告

删除群公告

此方法删除指定群中一条公告

命令字: anno_delete

通用接口定义: 删除群公告

事件处理

添加好友申请

使用此方法处理添加好友申请

命令字: resp_newFriendRequestEvent

通用接口定义: 添加好友申请

用户入群申请

使用此方法处理用户入群申请

命令字: resp_memberJoinRequestEvent

通用接口定义: 用户入群申请

Bot被邀请入群申请

使用此方法处理Bot被邀请入群申请

命令字: resp_botInvitedJoinGroupRequestEvent

通用接口定义: Bot被邀请入群申请