1. 后端处理服务器API
1.1  数据库结构
1.2  后端处理服务器HTTP 接口
1.3. 数据包
1.3.1  数据包的基本信息
1.3.2  所有数据包
2. 后端处理服务器应用集成API
2.1  设置应用集成
2.2  API 格式和签名机制
2.3  API 定义
3. 客户端扩展机制
3.1. 扩展定义
3.1.1  扩展类型
3.1.2  扩展包目录结构
3.1.3  扩展描述文件
3.2. 扩展模块
3.2.1  主入口模块
3.2.2. 扩展模块API
3.2.2.1  扩展 API 概览
3.2.2.2  扩展 API 权限
3.2.2.3  扩展 API 定义
3.2.3  扩展实例对象
3.2.4  数据存储机制
3.2.5  自定义上下文菜单
3.2.6  自定义命令
3.2.7  自定义网址解析
3.3. 开发扩展
3.3.1  载入开发中的扩展
3.3.2  开发应用扩展
3.3.3  开发插件扩展
3.3.4  开发主题扩展
3.4  内置扩展
3.5  分发扩展
4. 会话机器人开发指南
4.1  机器人应用开发

扩展 API 概览

2020-08-11 11:00:38
孙浩
6895
最后编辑:孙浩 于 2020-08-11 11:06:05
分享链接

喧喧客户端扩展模块 API 由客户端提供,扩展中的 JavaScript 模块代码中可以访问这些 API 来实现丰富的功能。实际运行时可用的 API 由扩展 API 声明和服务器端授权决定。

目前扩展模块中可供使用的 API 共有 288 个。根据扩展实际拥有的权限,在扩展模块中仅能够调用拥有权限的 API。

在扩展模块内(包括扩展主入口模块和入口模块引用的其他模块),可以通过全局对象 global.xext 来访问喧喧应用为扩展提供的接口对象,该对象包含了喧喧所有内置的关键模块和 API。

除了使用全局对象形式,还可以通过 require('xext') 来获取:

const xext = require('xext'); 
                
按模块划分

根据扩展所属的模块不同,可以分为 usermembersimextnotificationcontextmenucommandercomponentsviewsutilswindownodeModulesnodelangenvplatform 几类,下面分别列出不同模块下可用的 API:

  • user 用户信息访问相关

    • user.getCurrentUser(Level 1):获取当前登录的用户信息
  • members 通讯录成员信息访问相关

    • members.getDept(Level 3):获取部门信息
    • members.getDeptsTree(Level 3):获取部门结构树信息
    • members.getMember(Level 3):根据账号或用户 ID 获取用户对象信息
    • members.getMembers(Level 3):获取系统中所有用户账号或者指定过滤条件,以列表形式返回
    • members.getRoleName(Level 3):获取角色名称
  • im 聊天相关

    • im.createGroupChat(Level 4):创建一个讨论组会话
    • im.dismissChat(Level 4):解散讨论组会话
    • im.exitChat(Level 4):退出讨论组会话
    • im.fetchChatsHistory(Level 1):请求获取会话聊天记录
    • im.fetchPublicChats(Level 3):请求获取公开讨论组
    • im.getChat(Level 3):根据 gid 或 ID 获取会话
    • im.getChatMessages(Level 3):根据 gid 或 ID 获取会话消息列表(仅限在界面上显示的消息)
    • im.getChats(Level 3):获取系统中所有会话或者指定过滤条件,以列表形式返回
    • im.inviteMembersToChat(Level 4):邀请其他成员加入会话
    • im.joinChat(Level 4):加入会话
    • im.renameChat(Level 4):重命名会话
    • im.sendbMessage(Level 4):请求发送代码类消息
    • im.sendContentToChatSendbox(Level 2):向会话输入框添加内容
    • im.sendEmojiMessage(Level 4):向会话发送 Emoji 表情消息
    • im.sendFileMessage(Level 4):向会话发送文件消息
    • im.sendImageMessage(Level 4):向会话发送图片消息
    • im.sendTextMessage(Level 4):向会话发送文本消息
    • im.shareContentToChat(Level 4):请求分享内容到会话
    • im.toggleFreezeChat(Level 4):切换会话是否为从最近列表移除
    • im.toggleMuteChat(Level 4):切换会话是否为开启免打扰
    • im.toggleStarChat(Level 4):切换会话是否为收藏
  • ext 扩展相关

    • ext.MainView(Level 6):扩展应用主界面视图组件(当前扩展类型为 app,且应用类型为 insideView 时有效)
    • ext.getExtension(Level 0):获取当前扩展对象
    • ext.onAttach(Level 0):允许绑定扩展生命周期函数,当扩展被加载后调用,此时可以对扩展进行初始化
    • ext.onDetach(Level 0):允许绑定扩展生命周期函数,当扩展被卸载时调用,此时应该将扩展使用的资源进行释放,例如销毁定时器等
    • ext.onReady(Level 0):允许绑定扩展生命周期函数,当界面加载完毕时调用,此时扩展可以处理与界面相关操作
    • ext.onReceiveChatMessages(Level 4):允许绑定扩展生命周期函数,当用户接收到聊天消息时调用
    • ext.onRenderChatMessageContent(Level 4):允许绑定扩展生命周期函数,当在界面上需要转化 markdown 格式的消息文本为 html 时会调用此回调方法
    • ext.onRequestOpenApp:允许绑定扩展生命周期函数,当扩展类型为应用且应用类型为 'custom' 时,使用此函数来执行用户点击应用图标时的操作
    • ext.onSendChatMessage(Level 4):允许绑定扩展生命周期函数,当用户发送聊天消息时调用
    • ext.onUserLogin(Level 1):允许绑定扩展生命周期函数,当用户登录时调用
    • ext.onUserLogout(Level 1):允许绑定扩展生命周期函数,当用户登录出调用
    • ext.onUserStatusChange(Level 1):允许绑定扩展生命周期函数,当用户状态变更时调用
    • ext.urlInspectors(Level 5):允许提供网址解释器
  • notification 通知相关

    • notification.requestAttention(Level 5):请求在用户操作系统桌面提示窗口界面有新内容
    • notification.sendLocalNotification(Level 5):向通知中心发送一条本地通知
    • notification.setAppBadge(Level 5):设置应用图标上的小红点提示
    • notification.showDesktopNotification(Level 5):显示一条桌面弹窗通知
  • contextmenu 上下文菜单相关

    • contextmenu.addContextMenuCreator(Level 5):添加上下文菜单
    • contextmenu.addContextMenuCreator.chat.actions(Level 5):添加会话操作菜单
    • contextmenu.addContextMenuCreator.chat.member(Level 5):添加会话成员相关操作菜单
    • contextmenu.addContextMenuCreator.chat.menu(Level 5):添加会话在会话列表上的菜单
    • contextmenu.addContextMenuCreator.chat.sendbox.sendButton(Level 5):添加会话发送框发送按钮右键菜单
    • contextmenu.addContextMenuCreator.chat.sendbox.toolbar(Level 5):添加会话发送框工具栏菜单
    • contextmenu.addContextMenuCreator.chat.sidebar.file(Level 5):添加会话侧边栏文件列表操作菜单
    • contextmenu.addContextMenuCreator.chat.sidebar.member(Level 5):添加会话侧边栏成员操作菜单
    • contextmenu.addContextMenuCreator.chat.toolbar(Level 5):添加会话工具栏操作菜单
    • contextmenu.addContextMenuCreator.chat.toolbar.more(Level 5):添加会话工具栏更多按钮操作菜单
    • contextmenu.addContextMenuCreator.chats.menu(Level 5):添加会话列表类型切换菜单
    • contextmenu.addContextMenuCreator.chats.menu.group(Level 5):添加会话列表分组操作菜单
    • contextmenu.addContextMenuCreator.ext.app(Level 6):添加扩展应用操作菜单
    • contextmenu.addContextMenuCreator.ext.apps.navbar(Level 6):添加应用在导航上的操作菜单
    • contextmenu.addContextMenuCreator.ext.extension(Level 6):添加扩展操作菜单
    • contextmenu.addContextMenuCreator.ext.extensionsMenu(Level 6):添加扩展列表上的操作菜单
    • contextmenu.addContextMenuCreator.ext.openedApp(Level 6):添加已打开的扩展应用操作菜单
    • contextmenu.addContextMenuCreator.image(Level 4):添加图片操作菜单
    • contextmenu.addContextMenuCreator.member(Level 5):添加成员操作菜单
    • contextmenu.addContextMenuCreator.member.profile(Level 4):添加成员资料菜单
    • contextmenu.addContextMenuCreator.message(Level 5):添加聊天消息菜单
    • contextmenu.addContextMenuCreator.message.basic(Level 5):添加聊天消息基本操作菜单
    • contextmenu.addContextMenuCreator.message.b(Level 5):添加代码类聊天消息基本操作菜单
    • contextmenu.addContextMenuCreator.message.image(Level 5):添加图片类聊天消息基本操作菜单
    • contextmenu.addContextMenuCreator.message.text(Level 5):添加文本类聊天消息基本操作菜单
    • contextmenu.addContextMenuCreator.message.url(Level 5):添加链接类聊天消息基本操作菜单
    • contextmenu.addContextMenuCreator.profile.menu(Level 4):添加个人资料面板菜单
    • contextmenu.removeContextMenuCreator(Level 0):移除添加的上下文菜单
    • contextmenu.showContextMenu(Level 4):显示上下文菜单
  • commander 命令相关

    • commander.executeCommand(Level 6):执行命令
    • commander.executeCommand.closeDisplay(Level 2):执行关闭弹出层命令
    • commander.executeCommand.closeModal(Level 2):执行关闭对话框命令
    • commander.executeCommand.confirmJoinPublicChat(Level 4):执行请求加入公开会话命令
    • commander.executeCommand.mentionMemberInSendbox(Level 2):执行在输入框“@成员”命令
    • commander.executeCommand.openInApp(Level 5):执行在扩展应用中打开链接命令
    • commander.executeCommand.openUrlInBrowser(Level 5):执行在浏览器中打开链接命令
    • commander.executeCommand.openUrlInDialog(Level 5):执行在对话框中打开链接命令
    • commander.executeCommand.openWebviewDialog(Level 5):执行在 Webview 对话框中打开链接命令
    • commander.executeCommand.sendContentToChat(Level 2):执行向输入框发送内容命令
    • commander.executeCommand.setRoute(Level 6):执行设置界面路由命令
    • commander.executeCommand.shortcut.captureScreenHotkey(Level 2):执行启动截图命令
    • commander.executeCommand.shortcut.focusWindowHotkey(Level 2):执行激活窗口命令
    • commander.executeCommand.showChatAddCategoryDialog(Level 4):执行显示将会话添加到分组对话框命令
    • commander.executeCommand.showChatCommittersSettingDialog(Level 4):执行显示会话白名单对话框命令
    • commander.executeCommand.showChatInviteDialog(Level 4):执行显示邀请成员到会话对话框命令
    • commander.executeCommand.showChatSendbDialog(Level 4):执行显示发送代码对话框命令
    • commander.executeCommand.showChatSendDialog(Level 4):执行显示发送内容到会话对话框命令
    • commander.executeCommand.showChatShareDialog(Level 4):执行转发内容到会话对话框命令
    • commander.executeCommand.showChatsHistoryDialog(Level 2):执行显示会话历史记录对话框命令
    • commander.executeCommand.showConfirmSendFilesDialog(Level 4):执行显示确认发送文件对话框命令
    • commander.executeCommand.showCreateChatDialog(Level 4):执行显示创建会话对话框命令
    • commander.executeCommand.showEmojiPopover(Level 4):执行显示 Emoji 选择面板命令
    • commander.executeCommand.showExtensionDialog(Level 6):执行显示扩展详情对话框命令
    • commander.executeCommand.showExtensionInstallDialog(Level 6):执行显示安装扩展对话框命令
    • commander.executeCommand.showHotkeySettingDialog(Level 6):执行显示快捷键设置对话框命令
    • commander.executeCommand.showLanguageSwitchDialog(Level 4):执行显示界面语言切换对话框命令
    • commander.executeCommand.showMemberProfile(Level 4):执行显示用户资料面板命令
    • commander.executeCommand.showMessager(Level 5):执行显示提示消息命令
    • commander.executeCommand.showTodoEditDialog(Level 6):执行显示待办编辑对话框命令
    • commander.executeCommand.updateViewStyle(Level 6):执行请求更新视图样式命令
    • commander.executeCommand.viewImage(Level 2):执行显示查看图片命令
    • commander.executeCommandLine(Level 6):执行命令串
    • commander.executeCommandWithContext(Level 6):执行包含上下文参数的命令
    • commander.registerCommand(Level 5):注册命令
    • commander.unregisterCommand(Level 0):取消注册的命令
  • components 组件相关

    • components.AppAvatar(Level 6):应用图标组件
    • components.AreaSelector(Level 6):区域选择组件
    • components.Avatar(Level 6):头像组件
    • components.Button(Level 6):按钮组件
    • components.Checkbox(Level 6):复选框组件
    • components.ClickOutsideWrapper(Level 6):监听点击外部的辅助组件
    • components.ContextMenu(Level 6):上下文菜单组件
    • components.Display(Level 6):弹出层管理对象
    • components.DisplayContainer(Level 6):弹出层容器组件
    • components.DisplayLayer(Level 6):弹出层组件
    • components.Emoji(Level 6):Emoji 组件
    • components.HotkeyInputControl(Level 6):快捷键设置组件
    • components.Icon(Level 6):图标组件
    • components.ImageCutter(Level 6):图片剪切组件
    • components.ImageViewer(Level 6):图片查看组件
    • components.InputControl(Level 6):输入框组件
    • components.Messager(Level 6):提示消息组件
    • components.Modal(Level 6):对话框组件
    • components.Pager(Level 6):分页组件
    • components.Popover(Level 6):弹出面板组件
    • components.SearchControl(Level 6):搜索组件
    • components.SelectBox(Level 6):选择框组件
    • components.Spinner(Level 6):显示加载中动画组件
    • components.TabPane(Level 6):标签页面板组件
    • components.Tabs(Level 6):标签页组件
  • views 主界面视图相关

    • views.chats(Level 6):主界面上聊天相关组件
    • views.chats.ChatAvatar(Level 6):会话头像组件
    • views.chats.ChatChangeFontPopover(Level 6):会话消息字体大小设置面板功能库
    • views.chats.ChatCommittersSetting(Level 6):会话白名单设置界面组件
    • views.chats.ChatCommittersSettingDialog(Level 6):会话白名单设置对话框功能库
    • views.chats.ChatCreateDialog(Level 6):新建会话对话框功能库
    • views.chats.ChatCreateGroups(Level 6):创建讨论组会话组件
    • views.chats.ChatHeader(Level 6):会话界面头部组件
    • views.chats.ChatHistory(Level 6):会话历史记录查看组件
    • views.chats.ChatInviteDialog(Level 6):邀请加入会话对话框功能库
    • views.chats.ChatJoinPublic(Level 6):加入公开讨论组界面组件
    • views.chats.ChatListItem(Level 6):会话列表项组件
    • views.chats.ChatMessages(Level 6):会话消息列表组件
    • views.chats.ChatSearchResult(Level 6):会话搜索结果组件
    • views.chats.ChatSendbox(Level 6):会话消息输入发送框
    • views.chats.ChatShareDialog(Level 6):分享到会话对话框功能库
    • views.chats.ChatSidebar(Level 6):会话侧边栏组件
    • views.chats.ChatSidebarFiles(Level 6):会话文件侧边栏组件
    • views.chats.ChatSidebarPeoples(Level 6):会话成员侧边栏组件
    • views.chats.ChatSidebarProfile(Level 6):会话侧边栏个人资料界面组件
    • views.chats.ChatTipPopover(Level 6):会话发送框小提示功能库
    • views.chats.ChatTitle(Level 6):会话标题组件
    • views.chats.ChatView(Level 6):会话组件
    • views.chats.ChatsCache(Level 6):会话界面缓存组件
    • views.chats.ChatsDndContainer(Level 6):会话拖放事件处理组件
    • views.chats.ChatsHistory(Level 6):会话历史记录管理界面组件
    • views.chats.ChatsHistoryDialog(Level 6):会话历史记录管理对话框功能库
    • views.chats.Index(Level 6):会话界面首页组件
    • views.chats.Menu(Level 6):会话列表界面组件
    • views.chats.MenuList(Level 6):会话列表组件
    • views.chats.MenuSearchList(Level 6):会话搜索结果列表组件
    • views.chats.MessageBroadcast(Level 6):广播类会话消息组件
    • views.chats.MessageContentFile(Level 6):文件类消息内容组件
    • views.chats.MessageContentImage(Level 6):图片类消息内容组件
    • views.chats.MessageContentText(Level 6):文本类消息内容组件
    • views.chats.MessageDivider(Level 6):会话消息分割线组件
    • views.chats.MessageList(Level 6):消息列表组件
    • views.chats.MessageListItem(Level 6):会话消息列表项组件
    • views.chats.MessagesPreviewDialog(Level 6):消息预览对话框功能库
    • views.common(Level 6):主界面上的通用组件
    • views.common.About(Level 6):关于界面组件
    • views.common.AboutDialog(Level 6):关于对话框功能库
    • views.common.BuildInfo(Level 6):客户端版本信息组件
    • views.common.DraftEditor(Level 6):消息输入框组件
    • views.common.EmojiPopover(Level 6):Emoji 选择面板功能库
    • views.common.FileListItem(Level 6):文件列表项组件
    • views.common.FileListView(Level 6):文件列表项组件
    • views.common.HotkeySettingDialog(Level 6):快捷键设置对话框功能库
    • views.common.MemberList(Level 6):成员列表组件
    • views.common.MemberListItem(Level 6):成员列表项组件
    • views.common.MemberProfile(Level 6):个人资料界面组件
    • views.common.MemberProfileDialog(Level 6):个人资料对话框功能库
    • views.common.Routes(Level 6):路由功能库
    • views.common.SelectDialog(Level 6):选择对话框功能库
    • views.common.SelectPanel(Level 6):选择面板组件
    • views.common.SelectPanelWithActions(Level 6):带操作的选择面板组件
    • views.common.StatusDot(Level 6):用户状态指示标签组件
    • views.common.UserAvatar(Level 6):用户头像组件
    • views.common.UserChangePasswordDialog(Level 6):修改密码对话框功能库
    • views.common.UserListItem(Level 6):用户列表项组件
    • views.common.UserProfileDialog(Level 6):用户个人资料对话框功能库
    • views.common.UserSetting(Level 6):用户设置界面组件
    • views.common.UserSettingDialog(Level 6):用户设置对话框功能库
    • views.contacts(Level 6):通讯录界面组件
    • views.contacts.ContactsHome(Level 6):通讯录界面组件
    • views.contacts.ContactsIndex(Level 6):通讯录首页组件
    • views.contacts.ContactsView(Level 6):通讯录列表界面组件
    • views.contacts.DeptsTree(Level 6):部门树结构界面组件
    • views.contacts.GroupsMenu(Level 6):讨论组菜单组件
    • views.contacts.GroupsView(Level 6):讨论组列表组件
    • views.exts(Level 6):主界面上的扩展相关组件
    • views.exts.AppExtensions(Level 6):应用扩展管理界面组件
    • views.exts.AppFiles(Level 6):文件应用界面组件
    • views.exts.AppHome(Level 6):应用管理首页界面组件
    • views.exts.ExtensionDetail(Level 6):扩展详情界面组件
    • views.exts.ExtensionListItem(Level 6):扩展列表项组件
    • views.exts.Index(Level 6):扩展首页界面组件
    • views.exts.WebApp(Level 6):Web 应用界面组件
    • views.index(Level 6):主界面上的首页相关组件
    • views.index.AppView(Level 6):主窗口首页界面组件
    • views.index.ImageCutterApp(Level 6):截屏窗口界面组件
    • views.index.Index(Level 6):主窗口界面组件
    • views.login(Level 6):主界面上的登录相关组件
    • views.login.Form(Level 6):登录表单界面组件
    • views.login.Index(Level 6):登录界面首页组件
    • views.login.SwapUser(Level 6):切换已登录的账号界面组件
    • views.login.SwapUserDialog(Level 6):切换已登录的账号对话框功能库
    • views.main(Level 6):主界面上的界面框架组件
    • views.main.AutoReconnectBar(Level 6):自动重连提示界面组件
    • views.main.CacheContainer(Level 6):应用界面缓存组件
    • views.main.Index(Level 6):主界面组件
    • views.main.Navbar(Level 6):主导航组件
  • utils 通用工具模块相关

    • utils.Color(Level 5):颜色辅助类
    • utils.DateHelper(Level 5):日期时间辅助方法
    • utils.HtmlHelper(Level 5):HTML 操作辅助方法
    • utils.Image(Level 5):图片操作辅助方法
    • utils.LimitTimePromise(Level 5):限时异步实现辅助方法
    • utils.Markdown(Level 5):Markdown 辅助方法
    • utils.Pinyin(Level 5):拼音辅助方法
    • utils.Plain(Level 5):对象扁平化辅助方法
    • utils.Skin(Level 5):CSS 样式计算辅助方法
    • utils.Store(Level 5):本地存储辅助方法
    • utils.StringHelper(Level 5):字符串辅助方法
    • utils.version(Level 5):语义化版本号辅助方法
  • window 浏览器内置对象相关

    • window.document(Level 6):访问浏览器 document 对象
    • window.window(Level 6):访问浏览器 window 对象
  • nodeModules 第三方 node 模块

    • nodeModules.compareVersions(Level 7):compare-versions 模块,提供对版本号进行比较的方法
    • nodeModules.draft-js(Level 6):draft-js 模块,提供 DraftJS 编辑器组件
    • nodeModules.emoji-toolkit(Level 7):emoji-toolkit 模块,提供 Emoji 辅助方法
    • nodeModules.emojione-picker(Level 6):emojione-picker 模块,提供 Emoji 表情选择面板组件
    • nodeModules.extract-zip(Level 7):extract-zip 模块,提供对 zip 文件进行解压缩方法
    • nodeModules.highlight-js(Level 7):hightlight.js 模块,提供对代码片段进行高亮化方法
    • nodeModules.hotkeys-js(Level 7):hotkeys-js 模块,提供快捷键辅助方法
    • nodeModules.htmlparser(Level 7):htmlparser 模块,提供 HTML 片段解析方法
    • nodeModules.jquery(Level 6):jquery 模块,提供 jQuery 功能对象
    • nodeModules.marked(Level 7):marked 模块,提供 Markdown 辅助方法
    • nodeModules.md5(Level 7):md5 模块,提供 md5 算法方法
    • nodeModules.prop-types(Level 6):prop-types,提供组件属性定义和检查辅助方法
    • nodeModules.react(Level 6):react 模块
    • nodeModules.react-dom(Level 6):react-dom 模块
    • nodeModules.react-split-pane(Level 6):react-split-pane 模块,提供可拖放调整布局的容器组件
    • nodeModules.tiny-pinyin(Level 7):tiny-pinyin 模块,提供汉语拼音操作方法
    • nodeModules.uuid(Level 6):uuid 模块,提供全局唯一字符串生成辅助方法
  • node NodeJS 内置模块

    • node.child_process(Level 7):NodeJS 内置模块,子进程
    • node.crypto(Level 7):NodeJS 内置模块,加密和解密
    • node.dgram(Level 7):NodeJS 内置模块,数据报
    • node.dns(Level 7):NodeJS 内置模块,域名服务器
    • node.events(Level 7):NodeJS 内置模块,事件
    • node.fs(Level 7):NodeJS 内置模块,文件读写
    • node.global.process(Level 7):NodeJS global.process 对象
    • node.http(Level 7):NodeJS 内置模块,HTTP
    • node.http2(Level 7):NodeJS 内置模块,HTTP/2
    • node.https(Level 7):NodeJS 内置模块,HTTPS
    • node.net(Level 7):NodeJS 内置模块,网络
    • node.os(Level 7):NodeJS 内置模块,操作系统
    • node.path(Level 7):NodeJS 内置模块,路径
    • node.string_debr(Level 7):NodeJS 内置模块,字符串解码器
    • node.url(Level 7):NodeJS 内置模块,URL 解析
    • node.util(Level 7):NodeJS 实用工具库
    • node.zlib(Level 7):NodeJS 内置模块,压缩
  • lang 界面语言文本管理对象

    • lang(Level 7):界面语言文本管理对象
  • env 访问运行环境相关信息

    • env.arch(Level 5):获取操作系统架构类型
    • env.chrome(Level 7):获取所使用的 Chrome 版本
    • env.displayName(Level 5):获取客户端显示名称
    • env.displayVersion(Level 5):获取客户端显示的版本
    • env.electron(Level 7):获取用户所使用的 Electron 版本
    • env.lang(Level 5):获取用户所使用的界面语言类型
    • env.modules(Level 7):获取所使用的 node modules 版本
    • env.node(Level 7):获取所使用的 node 版本
    • env.os(Level 5):获取操作系统类型
    • env.productName(Level 5):获取客户端产品名称
    • env.v8(Level 7):获取所使用的 v8 版本
    • env.version(Level 5):获取客户端版本
  • platform 访问平台提供的实用工具

    • platform(Level 7):访问平台提供的实用工具
按等级划分

扩展 API 根据权限的不同划分为 7 个等级,等级越高的 API 拥有的权限更高,能够实现更复杂的功能。在 “基础版” 授权中客户端扩展可以使用 等级 5 及小于等级 5 下的所有 API,在 “增强版” 和 “OEM” 版本中客户端扩展可以使用所有等级的扩展 API。

下面为每个等级下的 API 清单:

  • 等级 0:扩展模块默认拥有等级为 0 的 API

    • commander.unregisterCommand:取消注册的命令
    • contextmenu.removeContextMenuCreator:移除添加的上下文菜单
    • ext.getExtension:获取当前扩展对象
    • ext.onAttach:允许绑定扩展生命周期函数,当扩展被加载后调用,此时可以对扩展进行初始化
    • ext.onDetach:允许绑定扩展生命周期函数,当扩展被卸载时调用,此时应该将扩展使用的资源进行释放,例如销毁定时器等
    • ext.onReady:允许绑定扩展生命周期函数,当界面加载完毕时调用,此时扩展可以处理与界面相关操作
  • 等级 1:能够读取当前用户自身相关信息

    • ext.onUserLogin:允许绑定扩展生命周期函数,当用户登录时调用
    • ext.onUserLogout:允许绑定扩展生命周期函数,当用户登录出调用
    • ext.onUserStatusChange:允许绑定扩展生命周期函数,当用户状态变更时调用
    • im.fetchChatsHistory:请求获取会话聊天记录
    • user.getCurrentUser:获取当前登录的用户信息
  • 等级 2:能够执行与当前用户自身相关其他操作并能够使用界面上的一些通用组件和对话框

    • commander.executeCommand.closeDisplay:执行关闭弹出层命令
    • commander.executeCommand.closeModal:执行关闭对话框命令
    • commander.executeCommand.mentionMemberInSendbox:执行在输入框“@成员”命令
    • commander.executeCommand.sendContentToChat:执行向输入框发送内容命令
    • commander.executeCommand.shortcut.captureScreenHotkey:执行启动截图命令
    • commander.executeCommand.shortcut.focusWindowHotkey:执行激活窗口命令
    • commander.executeCommand.showChatsHistoryDialog:执行显示会话历史记录对话框命令
    • commander.executeCommand.viewImage:执行显示查看图片命令
    • im.sendContentToChatSendbox:向会话输入框添加内容
  • 等级 3:能够获取会话列表、消息记录、部门和组织成员信息

    • im.fetchPublicChats:请求获取公开讨论组
    • im.getChat:根据 gid 或 ID 获取会话
    • im.getChatMessages:根据 gid 或 ID 获取会话消息列表(仅限在界面上显示的消息)
    • im.getChats:获取系统中所有会话或者指定过滤条件,以列表形式返回
    • members.getDept:获取部门信息
    • members.getDeptsTree:获取部门结构树信息
    • members.getMember:根据账号或用户 ID 获取用户对象信息
    • members.getMembers:获取系统中所有用户账号或者指定过滤条件,以列表形式返回
    • members.getRoleName:获取角色名称
  • 等级 4:能够通过 API 发送消息,对会话进行操作以及通过命令使用功能对话框

    • commander.executeCommand.confirmJoinPublicChat:执行请求加入公开会话命令
    • commander.executeCommand.showChatAddCategoryDialog:执行显示将会话添加到分组对话框命令
    • commander.executeCommand.showChatCommittersSettingDialog:执行显示会话白名单对话框命令
    • commander.executeCommand.showChatInviteDialog:执行显示邀请成员到会话对话框命令
    • commander.executeCommand.showChatSendbDialog:执行显示发送代码对话框命令
    • commander.executeCommand.showChatSendDialog:执行显示发送内容到会话对话框命令
    • commander.executeCommand.showChatShareDialog:执行转发内容到会话对话框命令
    • commander.executeCommand.showConfirmSendFilesDialog:执行显示确认发送文件对话框命令
    • commander.executeCommand.showCreateChatDialog:执行显示创建会话对话框命令
    • commander.executeCommand.showEmojiPopover:执行显示 Emoji 选择面板命令
    • commander.executeCommand.showLanguageSwitchDialog:执行显示界面语言切换对话框命令
    • commander.executeCommand.showMemberProfile:执行显示用户资料面板命令
    • contextmenu.addContextMenuCreator.image:添加图片操作菜单
    • contextmenu.addContextMenuCreator.member.profile:添加成员资料菜单
    • contextmenu.addContextMenuCreator.profile.menu:添加个人资料面板菜单
    • contextmenu.showContextMenu:显示上下文菜单
    • ext.onReceiveChatMessages:允许绑定扩展生命周期函数,当用户接收到聊天消息时调用
    • ext.onRenderChatMessageContent:允许绑定扩展生命周期函数,当在界面上需要转化 markdown 格式的消息文本为 html 时会调用此回调方法
    • ext.onSendChatMessage:允许绑定扩展生命周期函数,当用户发送聊天消息时调用
    • im.createGroupChat:创建一个讨论组会话
    • im.dismissChat:解散讨论组会话
    • im.exitChat:退出讨论组会话
    • im.inviteMembersToChat:邀请其他成员加入会话
    • im.joinChat:加入会话
    • im.renameChat:重命名会话
    • im.sendbMessage:请求发送代码类消息
    • im.sendEmojiMessage:向会话发送 Emoji 表情消息
    • im.sendFileMessage:向会话发送文件消息
    • im.sendImageMessage:向会话发送图片消息
    • im.sendTextMessage:向会话发送文本消息
    • im.shareContentToChat:请求分享内容到会话
    • im.toggleFreezeChat:切换会话是否为从最近列表移除
    • im.toggleMuteChat:切换会话是否为开启免打扰
    • im.toggleStarChat:切换会话是否为收藏
  • 等级 5:能够自定义消息卡片、右键菜单,发送本地通知并能够使用更多的内置辅助功能 API

    • commander.executeCommand.openInApp:执行在扩展应用中打开链接命令
    • commander.executeCommand.openUrlInBrowser:执行在浏览器中打开链接命令
    • commander.executeCommand.openUrlInDialog:执行在对话框中打开链接命令
    • commander.executeCommand.openWebviewDialog:执行在 Webview 对话框中打开链接命令
    • commander.executeCommand.showMessager:执行显示提示消息命令
    • commander.registerCommand:注册命令
    • contextmenu.addContextMenuCreator:添加上下文菜单
    • contextmenu.addContextMenuCreator.chat.actions:添加会话操作菜单
    • contextmenu.addContextMenuCreator.chat.member:添加会话成员相关操作菜单
    • contextmenu.addContextMenuCreator.chat.menu:添加会话在会话列表上的菜单
    • contextmenu.addContextMenuCreator.chat.sendbox.sendButton:添加会话发送框发送按钮右键菜单
    • contextmenu.addContextMenuCreator.chat.sendbox.toolbar:添加会话发送框工具栏菜单
    • contextmenu.addContextMenuCreator.chat.sidebar.file:添加会话侧边栏文件列表操作菜单
    • contextmenu.addContextMenuCreator.chat.sidebar.member:添加会话侧边栏成员操作菜单
    • contextmenu.addContextMenuCreator.chat.toolbar:添加会话工具栏操作菜单
    • contextmenu.addContextMenuCreator.chat.toolbar.more:添加会话工具栏更多按钮操作菜单
    • contextmenu.addContextMenuCreator.chats.menu:添加会话列表类型切换菜单
    • contextmenu.addContextMenuCreator.chats.menu.group:添加会话列表分组操作菜单
    • contextmenu.addContextMenuCreator.member:添加成员操作菜单
    • contextmenu.addContextMenuCreator.message:添加聊天消息菜单
    • contextmenu.addContextMenuCreator.message.basic:添加聊天消息基本操作菜单
    • contextmenu.addContextMenuCreator.message.b:添加代码类聊天消息基本操作菜单
    • contextmenu.addContextMenuCreator.message.image:添加图片类聊天消息基本操作菜单
    • contextmenu.addContextMenuCreator.message.text:添加文本类聊天消息基本操作菜单
    • contextmenu.addContextMenuCreator.message.url:添加链接类聊天消息基本操作菜单
    • env.arch:获取操作系统架构类型
    • env.displayName:获取客户端显示名称
    • env.displayVersion:获取客户端显示的版本
    • env.lang:获取用户所使用的界面语言类型
    • env.os:获取操作系统类型
    • env.productName:获取客户端产品名称
    • env.version:获取客户端版本
    • ext.urlInspectors:允许提供网址解释器
    • notification.requestAttention:请求在用户操作系统桌面提示窗口界面有新内容
    • notification.sendLocalNotification:向通知中心发送一条本地通知
    • notification.setAppBadge:设置应用图标上的小红点提示
    • notification.showDesktopNotification:显示一条桌面弹窗通知
    • utils.Color:颜色辅助类
    • utils.DateHelper:日期时间辅助方法
    • utils.HtmlHelper:HTML 操作辅助方法
    • utils.Image:图片操作辅助方法
    • utils.LimitTimePromise:限时异步实现辅助方法
    • utils.Markdown:Markdown 辅助方法
    • utils.Pinyin:拼音辅助方法
    • utils.Plain:对象扁平化辅助方法
    • utils.Skin:CSS 样式计算辅助方法
    • utils.Store:本地存储辅助方法
    • utils.StringHelper:字符串辅助方法
    • utils.version:语义化版本号辅助方法
  • 等级 6:能够使用 React 来开发应用,直接使用内置的通用组件和界面上的功能组件,主动执行功能命令

    • commander.executeCommand:执行命令
    • commander.executeCommand.setRoute:执行设置界面路由命令
    • commander.executeCommand.showExtensionDialog:执行显示扩展详情对话框命令
    • commander.executeCommand.showExtensionInstallDialog:执行显示安装扩展对话框命令
    • commander.executeCommand.showHotkeySettingDialog:执行显示快捷键设置对话框命令
    • commander.executeCommand.showTodoEditDialog:执行显示待办编辑对话框命令
    • commander.executeCommand.updateViewStyle:执行请求更新视图样式命令
    • commander.executeCommandLine:执行命令串
    • commander.executeCommandWithContext:执行包含上下文参数的命令
    • components.AppAvatar:应用图标组件
    • components.AreaSelector:区域选择组件
    • components.Avatar:头像组件
    • components.Button:按钮组件
    • components.Checkbox:复选框组件
    • components.ClickOutsideWrapper:监听点击外部的辅助组件
    • components.ContextMenu:上下文菜单组件
    • components.Display:弹出层管理对象
    • components.DisplayContainer:弹出层容器组件
    • components.DisplayLayer:弹出层组件
    • components.Emoji:Emoji 组件
    • components.HotkeyInputControl:快捷键设置组件
    • components.Icon:图标组件
    • components.ImageCutter:图片剪切组件
    • components.ImageViewer:图片查看组件
    • components.InputControl:输入框组件
    • components.Messager:提示消息组件
    • components.Modal:对话框组件
    • components.Pager:分页组件
    • components.Popover:弹出面板组件
    • components.SearchControl:搜索组件
    • components.SelectBox:选择框组件
    • components.Spinner:显示加载中动画组件
    • components.TabPane:标签页面板组件
    • components.Tabs:标签页组件
    • contextmenu.addContextMenuCreator.ext.app:添加扩展应用操作菜单
    • contextmenu.addContextMenuCreator.ext.apps.navbar:添加应用在导航上的操作菜单
    • contextmenu.addContextMenuCreator.ext.extension:添加扩展操作菜单
    • contextmenu.addContextMenuCreator.ext.extensionsMenu:添加扩展列表上的操作菜单
    • contextmenu.addContextMenuCreator.ext.openedApp:添加已打开的扩展应用操作菜单
    • ext.MainView:扩展应用主界面视图组件(当前扩展类型为 app,且应用类型为 insideView 时有效)
    • nodeModules.draft-js:draft-js 模块,提供 DraftJS 编辑器组件
    • nodeModules.emojione-picker:emojione-picker 模块,提供 Emoji 表情选择面板组件
    • nodeModules.jquery:jquery 模块,提供 jQuery 功能对象
    • nodeModules.prop-types:prop-types,提供组件属性定义和检查辅助方法
    • nodeModules.react:react 模块
    • nodeModules.react-dom:react-dom 模块
    • nodeModules.react-split-pane:react-split-pane 模块,提供可拖放调整布局的容器组件
    • nodeModules.uuid:uuid 模块,提供全局唯一字符串生成辅助方法
    • views.chats:主界面上聊天相关组件
    • views.chats.ChatAvatar:会话头像组件
    • views.chats.ChatChangeFontPopover:会话消息字体大小设置面板功能库
    • views.chats.ChatCommittersSetting:会话白名单设置界面组件
    • views.chats.ChatCommittersSettingDialog:会话白名单设置对话框功能库
    • views.chats.ChatCreateDialog:新建会话对话框功能库
    • views.chats.ChatCreateGroups:创建讨论组会话组件
    • views.chats.ChatHeader:会话界面头部组件
    • views.chats.ChatHistory:会话历史记录查看组件
    • views.chats.ChatInviteDialog:邀请加入会话对话框功能库
    • views.chats.ChatJoinPublic:加入公开讨论组界面组件
    • views.chats.ChatListItem:会话列表项组件
    • views.chats.ChatMessages:会话消息列表组件
    • views.chats.ChatSearchResult:会话搜索结果组件
    • views.chats.ChatSendbox:会话消息输入发送框
    • views.chats.ChatShareDialog:分享到会话对话框功能库
    • views.chats.ChatSidebar:会话侧边栏组件
    • views.chats.ChatSidebarFiles:会话文件侧边栏组件
    • views.chats.ChatSidebarPeoples:会话成员侧边栏组件
    • views.chats.ChatSidebarProfile:会话侧边栏个人资料界面组件
    • views.chats.ChatTipPopover:会话发送框小提示功能库
    • views.chats.ChatTitle:会话标题组件
    • views.chats.ChatView:会话组件
    • views.chats.ChatsCache:会话界面缓存组件
    • views.chats.ChatsDndContainer:会话拖放事件处理组件
    • views.chats.ChatsHistory:会话历史记录管理界面组件
    • views.chats.ChatsHistoryDialog:会话历史记录管理对话框功能库
    • views.chats.Index:会话界面首页组件
    • views.chats.Menu:会话列表界面组件
    • views.chats.MenuList:会话列表组件
    • views.chats.MenuSearchList:会话搜索结果列表组件
    • views.chats.MessageBroadcast:广播类会话消息组件
    • views.chats.MessageContentFile:文件类消息内容组件
    • views.chats.MessageContentImage:图片类消息内容组件
    • views.chats.MessageContentText:文本类消息内容组件
    • views.chats.MessageDivider:会话消息分割线组件
    • views.chats.MessageList:消息列表组件
    • views.chats.MessageListItem:会话消息列表项组件
    • views.chats.MessagesPreviewDialog:消息预览对话框功能库
    • views.common:主界面上的通用组件
    • views.common.About:关于界面组件
    • views.common.AboutDialog:关于对话框功能库
    • views.common.BuildInfo:客户端版本信息组件
    • views.common.DraftEditor:消息输入框组件
    • views.common.EmojiPopover:Emoji 选择面板功能库
    • views.common.FileListItem:文件列表项组件
    • views.common.FileListView:文件列表项组件
    • views.common.HotkeySettingDialog:快捷键设置对话框功能库
    • views.common.MemberList:成员列表组件
    • views.common.MemberListItem:成员列表项组件
    • views.common.MemberProfile:个人资料界面组件
    • views.common.MemberProfileDialog:个人资料对话框功能库
    • views.common.Routes:路由功能库
    • views.common.SelectDialog:选择对话框功能库
    • views.common.SelectPanel:选择面板组件
    • views.common.SelectPanelWithActions:带操作的选择面板组件
    • views.common.StatusDot:用户状态指示标签组件
    • views.common.UserAvatar:用户头像组件
    • views.common.UserChangePasswordDialog:修改密码对话框功能库
    • views.common.UserListItem:用户列表项组件
    • views.common.UserProfileDialog:用户个人资料对话框功能库
    • views.common.UserSetting:用户设置界面组件
    • views.common.UserSettingDialog:用户设置对话框功能库
    • views.contacts:通讯录界面组件
    • views.contacts.ContactsHome:通讯录界面组件
    • views.contacts.ContactsIndex:通讯录首页组件
    • views.contacts.ContactsView:通讯录列表界面组件
    • views.contacts.DeptsTree:部门树结构界面组件
    • views.contacts.GroupsMenu:讨论组菜单组件
    • views.contacts.GroupsView:讨论组列表组件
    • views.exts:主界面上的扩展相关组件
    • views.exts.AppExtensions:应用扩展管理界面组件
    • views.exts.AppFiles:文件应用界面组件
    • views.exts.AppHome:应用管理首页界面组件
    • views.exts.ExtensionDetail:扩展详情界面组件
    • views.exts.ExtensionListItem:扩展列表项组件
    • views.exts.Index:扩展首页界面组件
    • views.exts.WebApp:Web 应用界面组件
    • views.index:主界面上的首页相关组件
    • views.index.AppView:主窗口首页界面组件
    • views.index.ImageCutterApp:截屏窗口界面组件
    • views.index.Index:主窗口界面组件
    • views.login:主界面上的登录相关组件
    • views.login.Form:登录表单界面组件
    • views.login.Index:登录界面首页组件
    • views.login.SwapUser:切换已登录的账号界面组件
    • views.login.SwapUserDialog:切换已登录的账号对话框功能库
    • views.main:主界面上的界面框架组件
    • views.main.AutoReconnectBar:自动重连提示界面组件
    • views.main.CacheContainer:应用界面缓存组件
    • views.main.Index:主界面组件
    • views.main.Navbar:主导航组件
    • window.document:访问浏览器 document 对象
    • window.window:访问浏览器 window 对象
  • 等级 7:能够使用 NodeJS 内置模块,访问平台(例如 electron)提供的额外实用工具库

    • env.chrome:获取所使用的 Chrome 版本
    • env.electron:获取用户所使用的 Electron 版本
    • env.modules:获取所使用的 node modules 版本
    • env.node:获取所使用的 node 版本
    • env.v8:获取所使用的 v8 版本
    • lang:界面语言文本管理对象
    • node.child_process:NodeJS 内置模块,子进程
    • node.crypto:NodeJS 内置模块,加密和解密
    • node.dgram:NodeJS 内置模块,数据报
    • node.dns:NodeJS 内置模块,域名服务器
    • node.events:NodeJS 内置模块,事件
    • node.fs:NodeJS 内置模块,文件读写
    • node.global.process:NodeJS global.process 对象
    • node.http:NodeJS 内置模块,HTTP
    • node.http2:NodeJS 内置模块,HTTP/2
    • node.https:NodeJS 内置模块,HTTPS
    • node.net:NodeJS 内置模块,网络
    • node.os:NodeJS 内置模块,操作系统
    • node.path:NodeJS 内置模块,路径
    • node.string_debr:NodeJS 内置模块,字符串解码器
    • node.url:NodeJS 内置模块,URL 解析
    • node.util:NodeJS 实用工具库
    • node.zlib:NodeJS 内置模块,压缩
    • nodeModules.compareVersions:compare-versions 模块,提供对版本号进行比较的方法
    • nodeModules.emoji-toolkit:emoji-toolkit 模块,提供 Emoji 辅助方法
    • nodeModules.extract-zip:extract-zip 模块,提供对 zip 文件进行解压缩方法
    • nodeModules.highlight-js:hightlight.js 模块,提供对代码片段进行高亮化方法
    • nodeModules.hotkeys-js:hotkeys-js 模块,提供快捷键辅助方法
    • nodeModules.htmlparser:htmlparser 模块,提供 HTML 片段解析方法
    • nodeModules.marked:marked 模块,提供 Markdown 辅助方法
    • nodeModules.md5:md5 模块,提供 md5 算法方法
    • nodeModules.tiny-pinyin:tiny-pinyin 模块,提供汉语拼音操作方法
    • platform:访问平台提供的实用工具
发表评论
评论通过审核后显示。
联系我们
公众号