飞书 API
  1. NodeJS SDK 指南
飞书 API
  • 应用权限
    • 简介
    • 权限列表
  • API 调用指南
    • API 列表
    • 频控策略
    • 通用参数
    • 通用错误码
    • 调用流程
      • 流程概述
      • 获取访问凭证
      • 申请 API 权限
      • 配置应用数据权限
      • 设置 IP 白名单
      • 调用 API
  • 事件与回调
    • 事件订阅
      • 事件概述
      • 事件列表
      • 常见问题
      • 事件订阅优化指南
      • 订阅流程
        • 步骤一:使用长连接接收事件
        • 步骤一:将事件发送至开发者服务器
        • 步骤二:添加事件
        • 步骤三:接收事件
      • 获取事件出口 IP
    • 回调订阅
      • 回调概述
      • 步骤一:选择订阅方式(使用长连接接收回调)
      • 步骤一:选择订阅方式(将回调发送至开发者服务器)
      • 步骤二:添加回调
      • 步骤三:接收回调
  • 服务端 SDK
    • 服务端 SDK
    • 常见问题
    • Java SDK 指南
      • 开发前准备
      • 调用服务端 API
      • 处理事件
      • 处理回调
      • 场景示例
    • Golang SDK 指南
      • 开发前准备
      • 调用服务端 API
      • 处理事件
      • 处理回调
      • 场景示例
    • Python SDK 指南
      • 开发前准备
      • 调用服务端 API
      • 处理事件
      • 处理回调
      • 场景示例
    • NodeJS SDK 指南
      • 开发前准备
      • 调用服务端 API
      • 处理事件
      • 处理回调
      • 场景示例
  • 认证及授权
    • 登录态管理
      • 资源介绍
      • 获取登录用户信息
      • 批量获取脱敏的用户登录信息
      • 退出登录
    • 获取访问凭证
      • 自建应用获取 tenant_access_token
      • 自建应用获取 app_access_token
      • 商店应用获取 app_access_token
      • 商店应用获取 tenant_access_token
      • 获取 user_access_token
      • 刷新 user_access_token
      • 重新获取 app_ticket
  • 事件管理
    • 获取事件出口 IP
      GET
  • 通讯录
    • 概述
    • 常见问题
    • 权限范围
      • 资源介绍
      • 权限范围详解
      • 事件
        • 通讯录权限范围变更
      • 获取通讯录授权范围
    • 用户
      • 资源介绍
      • 国家/地区 Code 参照表
      • 事件
        • 员工信息被修改
        • 员工离职
        • 员工入职
      • 创建用户
      • 删除用户
      • 修改用户部分信息
      • 获取单个用户信息
      • 更新用户所有信息
      • 获取单个用户信息
      • 获取部门直属用户列表
      • 通过手机号或邮箱获取用户 ID
    • 用户组
      • 资源介绍
      • 创建用户组
      • 删除用户组
      • 更新用户组
      • 查询指定用户组
      • 查询用户组列表
      • 查询用户所属用户组
    • 自定义用户字段
      • 资源介绍
      • 事件
        • 成员字段变更
      • 获取企业自定义用户字段
    • 人员类型
      • 资源介绍
      • 事件
        • 新建人员类型
        • 启用人员类型
        • 停用人员类型
        • 删除人员类型
        • 修改人员类型名称
      • 新增人员类型
      • 删除人员类型
      • 更新人员类型
      • 查询人员类型
    • 部门
      • 资源介绍
      • 事件
        • 创建部门
        • 删除部门
        • 修改部门信息
      • 创建部门
      • 删除部门
      • 修改部门部分信息
      • 获取单个部门信息
      • 更新部门所有信息
      • 部门群转为普通群
      • 获取单个部门信息
      • 获取子部门列表
      • 获取父部门信息
      • 搜索部门
    • 单位
      • 资源介绍
      • 创建单位
      • 删除单位
      • 修改单位信息
      • 建立部门与单位的绑定关系
      • 解除部门与单位的绑定关系
      • 获取单位绑定的部门列表
      • 获取单位信息
      • 获取单位列表
    • 用户组成员
      • 资源介绍
      • 添加用户组成员
      • 批量添加用户组成员
      • 移除用户组成员
      • 查询用户组成员列表
      • 批量移除用户组成员
  • 消息
    • 概述
    • 常见问题
    • 消息内容介绍
      • 发送消息内容
      • 接收消息内容
    • 消息管理
      • 资源介绍
      • 事件
        • 接收消息
        • 消息已读
        • 撤回消息
      • 发送消息
      • 回复消息
      • 撤回消息
      • 查询消息已读信息
      • 获取会话历史消息
      • 获取消息中的资源文件
      • 获取指定消息的内容
    • 消息加急
      • 发送应用内加急
      • 发送短信加急
      • 发送电话加急
    • 批量消息
      • 批量发送消息
      • 批量撤回消息
      • 查询批量消息推送和阅读人数
      • 查询批量消息整体进度
    • 图片信息
      • 上传图片
      • 下载图片
    • 文件信息
      • 上传文件
      • 下载文件
    • 消息-消息卡片
      • 资源介绍
      • 更新应用发送的消息卡片
      • 延时更新消息卡片
      • 发送仅特定人可见的消息卡片
      • 删除仅特定人可见的消息卡片
    • 表情回复
      • 资源介绍
      • 表情文案说明
      • 事件
        • 新增消息表情回复
        • 删除消息表情回复
      • 添加消息表情回复
      • 删除消息表情回复
      • 获取消息表情回复
    • Pin
      • Pin 消息
      • 移除 Pin 消息
      • 获取群内 Pin 消息
  • 群组
    • 概述
    • 群组管理
      • 资源介绍
      • 群 ID 说明
      • 事件
        • 群解散
        • 群配置修改
      • 创建群
      • 解散群
      • 更新群信息
      • 更新群发言权限
      • 获取群信息
      • 更新群置顶
      • 撤销群置顶
      • 获取用户或机器人所在的群列表
      • 搜索对用户或机器人可见的群列表
      • 获取群成员发言权限
      • 获取群分享链接
    • 群成员
      • 资源介绍
      • 事件
        • 用户进群
        • 用户出群
        • 撤销拉用户进群
        • 机器人进群
        • 机器人被移出群
        • 用户和机器人的会话首次被创建
      • 指定群管理员
      • 删除群管理员
      • 将用户或机器人拉入群聊
      • 用户或机器人主动加入群聊
      • 将用户或机器人移出群聊
      • 获取群成员列表
      • 判断用户或机器人是否在群里
    • 群公告
      • 资源介绍
      • 更新群公告信息
      • 获取群公告信息
    • 会话标签页
      • 添加会话标签页
      • 删除会话标签页
      • 更新会话标签页
      • 会话标签页排序
      • 拉取会话标签页
    • 群菜单
      • 资源介绍
      • 添加群菜单
      • 删除群菜单。
      • 修改群菜单元信息
      • 排序群菜单
      • 获取群菜单
  • 云文档
    • 概述
    • 常见问题
    • 云空间
      • 云空间概述
      • 云空间常见问题
      • 文件夹
        • 获取我的空间(root folder)元信息
        • 获取文件夹下的清单
        • 获取文件夹元信息
        • 新建文件夹
        • 移动文件
        • 删除文件
      • 文件
        • 异步任务状态
          • 查询异步任务状态
        • 获取文档元数据
        • 新建在线文档
        • 复制文件
        • 移动文件
        • 删除文件
        • 获取文件统计信息
      • 素材
        • 素材概述
        • 分片上传素材
          • 概述
          • 分片上传素材(预上传)
          • 分片上传素材(上传分片)
          • 分片上传素材(完成上传)
        • 上传素材
        • 下载素材
        • 获取素材临时下载链接
      • 事件
        • 列表
          • 多维表格字段变更
          • 多维表格记录变更
          • 文件标题变更
          • 文件已读
          • 文件编辑
          • 文件协作者添加
          • 文件协作者移除
          • 文件删除到回收站
          • 文件彻底删除
        • 订阅云文档事件
      • 搜索
        • 文档搜素
      • 上传
        • 分片上传文件
          • 概述
          • 分片上传文件(预上传)
          • 分片上传文件(上传分片)
          • 分片上传文件(完成上传)
        • 上传文件
      • 下载
        • 下载文件
      • 导入
        • 概述
        • 创建导入任务
        • 查询导入结果
      • 导出
        • 导出文件指南
        • 创建导出任务
        • 查询导出任务结果
        • 下载导出文件
      • 文档版本
        • 概述
        • 创建文档版本
        • 删除文档版本
        • 获取文档版本
        • 获取文档版本列表
    • 权限
      • 权限概述
      • 常见问题
      • 成员
        • 转移所有者
        • 判断当前用户是否有某权限
        • 获取协作者列表(新版本)
        • 获取协作者列表
        • 增加协作者权限
        • 更新协作者权限
        • 移除协作者权限
      • 设置
        • 获取云文档权限设置
        • 更新云文档权限设置
    • 评论
      • 分页获取文档评论
      • 添加评论
      • 获取评论
      • 更新回复
      • 删除回复
      • 解决/恢复 评论
    • 文档
      • 新版文档接入指南
      • 新版文档
        • 概述
        • 数据结构
        • 接入指南
        • 文档
          • 获取文档基本信息
          • 获取文档纯文本内容
          • 获取文档所有块
          • 创建文档
        • 块
          • 获取块
          • 创建块
          • 更新块
          • 批量更新块
          • 删除块
          • 获取所有子块
      • 旧版文档
        • 概述
        • 准备接入文档 API
        • 文档数据结构概述
        • 文档数据结构参考
        • 文档
          • 创建文档
        • 内容
          • 获取文档富文本内容
          • 获取文档文本内容
          • 编辑文档内容
    • 权限
      • 权限成员
        • 增加权限
        • 判断协作者是否有某权限
      • 权限设置
        • 获取文档公共设置V2
        • 更新文档公共设置
      • 转移拥有者
    • 电子表格
      • 概述
      • 电子表格常见问题
      • 支持写入的数据类型
      • 支持数字格式类型
      • 表格
        • 修改电子表格属性
        • 获取电子表格信息
        • 创建表格
      • 工作表
        • 查询工作表
        • 获取工作表
        • 操作工作表
        • 更新工作表属性
      • 行列
        • 增加行列
        • 插入行列
        • 更新行列
        • 移动行列
        • 删除行列
      • 单元格
        • 追加数据
        • 插入数据
        • 读取单个范围
        • 读取多个范围
        • 向单个范围写入数据
        • 向多个范围写入数据
        • 设置单元格样式
        • 批量设置单元格样式
        • 写入图片
        • 合并单元格
        • 拆分单元格
        • 查找单元格
        • 替换单元格
      • 筛选
        • 筛选指南
        • 获取筛选
        • 创建筛选
        • 更新筛选
        • 删除筛选
      • 筛选视图
        • 筛选条件
          • 筛选视图的筛选条件指南
          • 创建筛选条件
          • 查询筛选条件
          • 更新筛选条件
          • 删除筛选条件
          • 获取筛选条件
        • 更新筛选视图
        • 获取筛选视图
        • 查询筛选视图
        • 创建筛选视图
        • 删除筛选视图
      • 表格操作
        • 创建表格
        • 获取表格元数据
        • 更新表格属性
        • 操作工作表
        • 更新工作表属性
      • 保护范围
        • 增加保护范围
        • 获取保护范围
        • 修改保护范围
        • 删除保护范围
      • 数据校验
        • 概述
        • 设置下拉列表
        • 删除下拉列表设置
        • 更新下拉列表设置
        • 查询下拉列表设置
      • 条件格式
        • 条件格式指南
        • 创建条件格式
        • 获取条件格式
        • 更新条件格式
        • 删除条件格式
      • 浮动图片
        • 浮动图片指南
        • 创建浮动图片
        • 获取浮动图片
        • 查询浮动图片
        • 更新浮动图片
        • 删除浮动图片
    • API参考
      • 创建文档
      • 编辑文档内容
      • 历史文档(不建议)
        • 获取文档中的电子表格的元数据
      • 获取文档元信息
    • 多维表格
      • 概述
      • 接入指南
      • 数据结构
      • 多维表格
        • 获取多维表格元数据
        • 更新多维表格元数据
      • 数据表
        • 更新数据表
        • 列出数据表
        • 新增数据表
        • 新增多个数据表
        • 删除一个数据表
        • 删除多个数据表
      • 仪表盘
        • 复制仪表盘
        • 列出仪表盘
      • 视图
        • 更新视图
        • 检索视图
        • 列出视图
        • 新增视图
        • 删除视图
      • 表单
        • 更新表单元数据
        • 获取表单元数据
        • 更新表单问题
        • 列出表单问题
      • 记录
        • 记录筛选开发指南
        • 检索记录
        • 列出记录
        • 新增记录
        • 更新记录
        • 删除记录
        • 新增多条记录
        • 更新多条记录
        • 删除多条记录
      • 字段
        • 字段编辑指南
        • 附件字段说明
        • 列出字段
        • 新增字段
        • 更新字段
        • 删除字段
      • 高级权限
        • 概述
        • 自定义角色
          • 列出自定义角色
          • 新增自定义角色
          • 删除自定义角色
          • 更新自定义角色
        • 协作者
          • 批量删除协作者
          • 批量新增协作者
          • 列出协作者
          • 新增协作者
          • 删除协作者
    • 知识库
      • 概述
      • 常见问题
      • 知识空间
        • 创建知识空间
        • 获取知识空间列表
        • 获取知识空间信息
      • 空间成员
        • 删除知识空间成员
        • 添加知识空间成员
      • 空间设置
        • 更新知识空间设置
      • 节点
        • 创建知识空间节点
        • 获取知识空间节点信息
        • 获取知识空间子节点列表
        • 移动知识空间节点
        • 更新知识空间节点标题
        • 创建知识空间节点副本
      • 任务
        • 获取任务结果
      • 云文档
        • 移动云空间文档至知识空间
        • 获取任务结果
      • 搜索 Wiki
        • 搜索 Wiki
    • 云文档助手
      • 订阅
        • 获取订阅状态
        • 创建订阅
        • 更新订阅状态
  • 日历
    • 概述
    • 常见问题
    • 日历管理
      • 资源介绍
      • 事件
        • 日历变更
      • 获取主日历
      • 创建共享日历
      • 删除共享日历
      • 查询主日历信息
      • 查询主日历忙闲信息
      • 查询日历信息
      • 查询日历列表
      • 更新日历
      • 搜索日历
      • 订阅日历
      • 取消订阅日历
      • 订阅日历变更事件
      • 取消订阅日历变更事件
    • 日历访问控制
      • 资源介绍
      • 事件
        • 创建 ACL
        • 删除 ACL
      • 取消订阅日历访问控制变更事件
      • 创建访问控制
      • 删除访问控制
      • 获取访问控制列表
      • 订阅日历访问控制变更事件
    • 日程管理
      • 资源介绍
      • 事件
        • 日程变更
      • 创建日程
      • 删除日程
      • 更新日程
      • 获取日程
      • 获取日程列表
      • 搜索日程
      • 订阅日程变更事件
      • 取消订阅日程变更事件
    • 请假日程管理
      • 资源介绍
      • 创建请假日程
      • 删除请假日程
    • 会议室日程管理
      • 事件
        • 会议室状态信息变更
        • 第三方会议室日程变动
      • 查询会议室日程主题和会议详情
      • 查询会议室忙闲
      • 回复会议室日程实例
    • 日程参与人
      • 资源介绍
      • 获取日程参与群成员列表
      • 添加日程参与人
      • 获取日程参与人列表
      • 删除日程参与人
    • 同步到本地日历
      • 生成 CalDAV 配置
    • 同步 Exchange 日历信息
      • 资源介绍
      • 将 Exchange 账户绑定到飞书账户
      • 解除 Exchange 账户绑定
      • 查询 Exchange 账户的绑定状态
  • 视频会议
    • 视频会议概述
    • 预约
      • 资源介绍
      • 预约会议
      • 删除预约
      • 更新预约
      • 获取预约
      • 获取活跃会议
    • 会议
      • 资源介绍
      • 事件
        • 企业会议开始
        • 企业会议结束
        • 会议开始
        • 会议结束
        • 加入会议
        • 离开会议
        • 开始录制
        • 停止录制
        • 录制完成
        • 屏幕共享开始
        • 屏幕共享结束
      • 邀请参会人
      • 移除参会人
      • 设置主持人
      • 结束会议
      • 获取会议详情
      • 获取与会议号相关联的会议列表
    • 录制
      • 资源介绍
      • 开始录制
      • 停止录制
      • 获取录制文件
      • 授权录制文件
    • 会议报告
      • 资源介绍
      • 获取会议报告
      • 获取top用户列表
    • 导出
      • 资源介绍
      • 导出会议明细
      • 导出参会人明细
      • 导出参会人会议质量数据
      • 导出会议室预定数据
      • 查询导出任务结果
      • 下载导出文件
    • 会议室层级
      • 资源介绍
      • 创建会议室层级
      • 删除会议室层级
      • 更新会议室层级
      • 查询会议室层级详情
      • 批量查询会议室层级详情
      • 查询会议室层级列表
      • 搜索会议室层级
    • 会议室管理
      • 资源介绍
      • 事件
        • 创建会议室
        • 更新会议室
        • 删除会议室
      • 创建会议室
      • 删除会议室
      • 更新会议室
      • 查询会议室详情
      • 批量查询会议室详情
      • 查询会议室列表
      • 搜索会议室
    • 会议室配置
      • 资源介绍
      • 查询会议室配置
      • 设置会议室配置
      • 获取会议室预定范围
      • 更新会议室预定范围
  • 考勤打卡
    • 概述
    • 接入指南
    • 考勤班次
      • 按名称查询班次
      • 删除班次
      • 创建班次
      • 按 ID 查询班次
      • 查询所有班次
    • 考勤组管理
      • 创建或修改考勤组
      • 删除考勤组
      • 按 ID 查询考勤组
      • 按名称查询考勤组
      • 查询所有考勤组
    • 考勤排班
      • 查询班表信息
      • 创建或修改班表
    • 考勤统计
      • 功能介绍
      • 查询统计表头
      • 更新统计设置
      • 查询统计数据
      • 查询统计设置
    • 假勤审批
      • 获取用户审批通过数据
      • 通知审批状态更新
      • 写入审批结果
    • 考勤补卡
      • 获取可补卡时间
      • 获取补卡记录
      • 通知补卡审批发起
    • 打卡信息管理
      • 批量查询打卡流水
      • 查询打卡流水
      • 获取打卡结果
      • 导入打卡流水
    • 考勤用户管理
      • 事件
        • 用户打卡成功
        • 用户任务状态变更
      • 修改用户人脸识别信息
      • 批量查询用户人脸识别信息
      • 上传用户人脸识别照片
      • 下载用户人脸识别照片
  • 审批
    • 概述
    • 常见问题
    • 接入指南
      • 审批接入指南
      • 原生审批接入指南
      • 商店应用开发指南
      • 三方审批接入
        • 三方审批接入指南
        • 三方审批接入准备
        • 审批官方连接器
    • 原生审批定义
      • 资源介绍
      • 关联外部选项说明
      • 创建审批定义
      • 查看指定审批定义
      • 查询审批定义列表
    • 原生审批实例
      • 资源介绍
      • 创建审批实例
      • 撤回审批实例
      • 抄送审批实例
      • 预览审批流程
      • 批量获取审批实例ID
      • 获取单个审批实例详情
    • 原生审批任务
      • 资源介绍
      • 同意审批任务
      • 拒绝审批任务
      • 转交审批任务
      • 退回审批任务
      • 审批任务加签
      • 重新提交审批任务
    • 原生审批文件
      • 资源介绍
      • 上传文件
    • 原生审批评论
      • 资源介绍
      • 创建评论
      • 删除评论
      • 清空评论
      • 获取评论
    • 三方审批定义
      • 资源介绍
      • 三方快捷审批回调
      • 创建三方审批定义
    • 三方审批实例
      • 资源介绍
      • 同步三方审批实例
      • 校验三方审批实例
    • 三方审批任务
      • 资源介绍
      • 获取三方审批任务状态
    • 审批 Bot 消息
      • 发送审批 Bot 消息
      • 更新审批 Bot 消息
    • 审批查询
      • 查询实例列表
      • 查询抄送列表
      • 查询任务列表
      • 查询用户的任务列表
      • 查询审批 ID(专用)
    • 审批事件
      • 功能介绍
      • 订阅步骤
      • 常见问题
      • 事件接口
        • 订阅审批事件
        • 取消订阅审批事件
      • 公用事件
        • 审批抄送状态变更
        • 审批任务状态变更
        • 审批实例状态变更
        • 审批定义更新
      • 特殊事件
        • 出差审批
        • 外出审批
        • 补卡审批
        • 换班审批
        • 加班审批
        • 请假审批
  • 服务台
    • 概述
    • 接入指南
    • 客服
      • 客服功能管理
        • 更新客服信息
        • 获取客服邮箱
      • 客服工作日程
        • 创建客服工作日程
        • 删除客服工作日程
        • 更新客服工作日程
        • 查询指定客服工作日程
        • 查询全部客服工作日程
      • 客服技能
        • 创建客服技能
        • 删除客服技能
        • 更新客服技能
        • 查询指定客服技能
        • 查询全部客服技能
      • 客服技能规则
        • 客服技能及运算符
        • 获取客服技能列表
    • 工单
      • 事件
        • 创建工单
        • 工单状态变更
      • 工单管理
        • 创建服务台对话
        • 更新工单详情
        • 查询指定工单详情
        • 获取服务台工单内消息图像
        • 回复用户提问结果至工单
        • 查询全部工单详情
        • 获取服务台自定义字段
      • 工单消息
        • 工单消息内容
        • 发送工单消息
        • 获取工单消息详情
        • 服务台机器人向工单绑定的群内发送消息
      • 工单自定义字段
        • 概述
        • 创建工单自定义字段
        • 删除工单自定义字段
        • 更新工单自定义字段
        • 获取指定工单自定义字段
        • 获取全部工单自定义字段
      • 工单自定义字段
    • 知识库
      • 知识库管理
        • 富文本
        • 创建知识库
        • 获取知识库详情
        • 修改知识库
        • 删除知识库
        • 获取全部知识库详情
        • 获取知识库图像
        • 搜索知识库
      • 知识库分类
        • 创建知识库分类
        • 获取知识库分类
        • 更新知识库分类详情
        • 删除知识库分类详情
        • 获取全部知识库分类
    • 推送中心
      • 事件
        • 推送审核通知事件
      • 创建推送
      • 更新推送
      • 查询推送
      • 预览推送
      • 提交审核
      • 取消审核
      • 执行推送
      • 取消推送
    • 事件订阅
      • 订阅服务台事件
      • 取消订阅服务台事件
  • 任务
    • 任务概述
    • Markdown 模块
    • 任务字段补充说明
    • 任务管理
      • 功能介绍
      • 事件
        • 任务信息变更(租户维度)
        • 任务信息变更
      • 创建任务
      • 删除任务
      • 更新任务
      • 完成任务
      • 取消完成任务
      • 查询指定任务
      • 查询所有任务
    • 提醒
      • 功能介绍
      • 新增提醒时间
      • 删除提醒时间
      • 查询提醒时间列表
    • 评论
      • 概述
      • 事件
        • 任务评论信息变更
      • 获取评论列表
      • 创建评论
      • 删除评论
      • 更新评论
      • 获取评论详情
    • 关注人
      • 功能介绍
      • 批量删除关注人
      • 新增关注者
      • 删除指定关注人
      • 获取关注者列表
    • 执行者
      • 功能介绍
      • 批量删除执行者
      • 新增执行者
      • 删除指定执行者
      • 获取执行者列表
  • 邮箱
    • 邮件组
      • 邮件组管理
        • 创建邮件组
        • 删除邮件组
        • 修改邮件组部分信息
        • 修改邮件组全部信息
        • 查询指定邮件组
        • 批量获取邮件组
      • 邮件组成员
        • 创建邮件组成员
        • 删除邮件组成员
        • 查询指定邮件组成员
        • 获取所有邮件组成员
        • 批量创建邮件组成员
        • 批量删除邮件组成员
      • 邮件组别名
        • 创建邮件组别名
        • 删除邮件组别名
        • 获取邮件组所有别名
      • 邮件组权限成员
        • 创建邮件组权限成员
        • 删除邮件组权限成员
        • 获取邮件组权限成员
        • 批量获取邮件组权限成员
        • 批量创建邮件组权限成员
        • 批量删除邮件组权限成员
    • 公共邮箱
      • 公共邮箱管理
        • 创建公共邮箱
        • 删除公共邮箱
        • 修改公共邮箱
        • 修改公共邮箱全部信息
        • 查询所有公共邮箱
        • 查询指定公共邮箱
      • 公共邮箱成员
        • 添加公共邮箱成员
        • 删除公共邮箱成员
        • 删除公共邮箱所有成员
        • 获取公共邮箱成员信息
        • 查询所有公共邮箱成员信息
        • 批量添加公共邮箱成员
        • 批量删除公共邮箱成员
      • 公共邮箱别名
        • 创建公共邮箱别名
        • 删除公共邮箱别名
        • 查询公共邮箱的所有别名
    • 用户邮箱
      • 从回收站删除用户邮箱地址
      • 创建用户邮箱别名
      • 删除用户邮箱别名
      • 获取用户邮箱所有别名
    • 邮箱地址
      • 查询邮箱地址状态
  • 应用信息
    • 应用管理
      • 校验应用管理员
      • 获取应用管理员管理范围
      • 获取应用在企业内的可用范围
      • 获取用户可用的应用
      • 获取企业安装的应用
      • 更新应用可用范围
      • 查询应用管理员列表
    • 应用商店
      • 查询用户是否在应用开通范围
      • 查询租户购买的付费方案
      • 查询订单详情
    • 应用
      • 获取应用版本列表
      • 查看待审核的应用列表
      • 获取应用信息
      • 获取应用版本信息
      • 更新应用审核状态
      • 更新应用分组信息
    • 应用使用情况
      • 获取应用使用概览
    • 应用反馈
      • 更新应用反馈
      • 获取应用反馈列表
    • 事件
      • 新增应用反馈
      • 反馈更新
      • 应用创建
      • 首次启用应用
      • 应用停启用
      • 应用商店应用购买
      • app_ticket 事件
      • 应用卸载
      • 应用可用性范围增加
      • 申请发布应用
      • 撤回应用发布申请
      • 未命名文档
  • 企业信息
    • 获取企业信息
  • 认证信息
    • 获取认证信息
  • 个人设置
    • 系统统计
      • 功能介绍
      • 创建系统状态
      • 删除系统状态
      • 修改系统状态
      • 获取系统状态
      • 批量开启系统状态
      • 批量关闭系统状态
  • 搜索
    • 概述
    • 接入指南
    • 常见问题
    • 数据源
      • 创建数据源
      • 删除数据源
      • 修改数据源
      • 获取数据源
      • 批量获取所有的数据源
    • 数据项
      • 批量为数据项创建索引
      • 为指定数据项创建索引
      • 获取数据项
      • 删除数据项
    • 数据范式
      • 创建数据范式
      • 删除数据范式
      • 修改数据范式
      • 获取数据范式
  • AI 能力
    • 光学字符识别
      • 识别图片中的文字
    • 语音识别
      • 识别语音文件 (ASR)
      • 识别流式语音 (ASR)
    • 机器翻译
      • 识别文本语种
      • 翻译文本
  • 管理后台
    • 登录密码管理
      • 重置用户的企业邮箱密码
    • 数据报表管理
      • 功能介绍
      • 获取部门维度的用户活跃和功能使用数据
      • 获取用户维度的用户活跃和功能使用数据
    • 企业勋章
      • 功能介绍
      • 勋章管理
        • 创建勋章
        • 修改勋章信息
        • 上传勋章图片
        • 获取勋章列表
        • 获取勋章详情
      • 勋章授予名单
        • 创建授予名单
        • 删除授予名单
        • 修改授予名单
        • 获取授予名单列表
        • 获取授予名单详情
  • 飞书人事(标准版)
    • 接入指南
    • 批量获取员工花名册信息
    • 下载人员的附件
  • 飞书人事(企业版)
    • 休假管理
      • 批量查询员工请假记录
  • 招聘
    • 概述
    • 错误码
    • 招聘相关配置
      • 职位
        • 新建职位
        • 更新职位
        • 更新职位设置
        • 获取职位设置
        • 获取职位信息
        • 获取职位上的招聘人员信息
      • 流程
        • 获取招聘流程信息
    • 获取候选人
      • 内推
        • 获取内推信息
    • 候选人管理
      • 人才
        • 通过手机号或邮箱获取人才 ID
        • 获取人才信息
      • 投递流程
        • 投递管理
          • 创建投递
          • 终止投递
          • 获取投递信息
          • 获取投递列表
        • Offer
          • 获取 Offer 信息
        • 入职
          • 更新 e-HR 导入任务结果
          • 操作候选人入职
          • 更新入职状态
          • 通过投递 ID 获取入职信息
          • 通过员工 ID 获取入职信息
      • 备注
        • 创建备注
        • 更新备注
        • 获取备注
        • 获取备注列表
      • 简历来源
        • 获取简历来源列表
    • 附件
      • 获取附件信息
      • 获取附件预览信息
  • OKR
    • 概述
    • OKR周期
      • 获取OKR周期列表
    • OKR 内容
      • 获取用户的 OKR 列表
      • 批量获取OKR
    • 用户OKR
      • 获取用户的OKR列表
    • OKR 进展记录
      • 创建 OKR 进展记录
      • 删除 OKR 进展记录
      • 更新 OKR 进展记录
      • 获取 OKR 进展记录
      • 上传进展记录图片
    • 指标管理
      • 获取指标库
      • 获取指标表
      • 更新指标项
      • 批量更新指标项
      • 获取指标项
  • 实名认证
    • 录入身份信息
    • 上传人脸基准图片
    • 裁剪人脸图片
    • 查询人脸认证结果
  • 智能门禁
    • 概述
    • 用户管理
      • 事件
        • 用户变更
      • 获取单个用户信息
      • 获取用户列表
      • 修改用户部分信息
      • 上传人脸图片
      • 下载人脸图片
    • 门禁设备
      • 获取设备列表
    • 人脸图片
      • 概述
  • 企业百科
    • 概述
    • 草稿
      • 创建草稿
      • 更新草稿
    • 词条
      • 创建免审词条
      • 更新免审词条
      • 提取潜在的百科词条
      • 获取词条详情
      • 获取词条列表
      • 精准搜索词条
      • 模糊搜索词条
      • 词条高亮
    • 分类
      • 获取百科分类
    • 图片管理
      • 上传图片
      • 下载图片
  • 妙记
    • 获取妙计统计数据
      • 获取妙记统计数据
    • 妙记信息
      • 获取妙记信息
  • 工作台
    • 我的常用推荐规则
      • 获取当前设置的推荐规则列表
  • 企业
    • 获取企业信息
  1. NodeJS SDK 指南

调用服务端 API

本文档介绍通过 NodeJS SDK 构造 API 请求、调用开放平台服务端 API 的详细步骤。

步骤一:创建并配置 API Client#

调用 API 之前,需要先创建一个 API Client,用于指定应用信息、日志级别、超时时间等基本信息。
1.
创建 API Client。
企业自建应用与商店应用的创建方式有所不同,具体说明如下:
企业自建应用,使用以下代码创建 API Client。
import * as lark from '@larksuiteoapi/node-sdk';

const client = new lark.Client({
    appId: 'app id',
    appSecret: 'app secret'
});
商店应用,使用以下代码创建 API Client,其中需要通过 appType: lark.AppType.ISV 标识当前的应用为商店应用。
import * as lark from '@larksuiteoapi/node-sdk';

const client = new lark.Client({
    appId: 'app id',
    appSecret: 'app secret',
    appType: lark.AppType.ISV,
});
说明:使用商店应用发起 API 调用时,必须传入租户 Key(tenant_key)以及 app_ticket(用于获取商店应用的 app_access_token)。详细说明参见下文 商店应用调用 API 的必要操作 章节。
2.
(可选)自定义 API Client 配置
在创建 API Client 时,支持自定义 API Client 的配置。例如,设置日志级别、缓存器等。Client 构造参数说明如下表所示。
参数类型是否必填描述
appIdstring是应用的 App ID。获取方式:登录开发者后台,在应用详情页的 凭证与基础信息 页面内,获取应用凭证(包括 App ID 和 App Secret)。
appSecretstring是应用的 App Secret。
domainDomain | string否应用域名。一般用于指定飞书域名:飞书:https://open.feishu.cnLark:https://open.larksuite.com如需配置其它域名,则需确保传递完整的域名。**默认值**:Domain.Feishu,该默认值表示使用飞书域名,如果是 Lark 需要设置为 Domain.Lark。
httpInstanceHttpInstance否SDK 发送请求的 HTTP 实例。SDK 内部默认使用 axios.create() 构造出一个 defaultHttpInstance 进行 HTTP 调用。可以从 SDK 中 import defaultHttpInstance,在其中添加 interceptors 完成业务需求。例如,SDK 默认过滤了响应结果中的 data,如需获取 logid 等数据,可以重置 interceptors。示例代码如下:import { defaultHttpInstance } from '@larksuiteoapi/node-sdk';defaultHttpInstance.interceptors.response.use((resp) => { // 这里可以做一些业务逻辑处理 // 记得返回resp.data return resp.data;})默认值:defaultHttpInstance
loggerLevelLoggerLevel否日志级别。枚举值:error:记录错误事件,这些事件阻止了部分程序的执行。warn:记录一些异常问题,但这些异常可能不影响程序继续运行。info:记录运行过程中关键的、需要被监控的信息。debug:记录调试信息,用于在调试时诊断问题。trace:记录详细信息,可用于开发或调试时跟踪程序运行过程。默认值:info
loggerLogger否日志器,可根据需要自定义配置。
cacheCache否缓存器,用于缓存数据的存储与获取,如 token。如果你没有指定缓存器,SDK 会初始化一个缓存器。如果需要和现有系统共享数据,可以自定义缓存器,实现 Cache 的接口即可。默认缓存器的实现:default-cache.ts`import get from 'lodash.get';import { Cache } from '@node-sdk/typings';export class DefaultCache implements Cache { values: Map< string
disableTokenCacheboolean否是否禁用用于保存 token 的缓存。如果禁用(取值 true),则不会缓存 token,系统会在每次需要使用 token 时自动重新拉取。默认值:false,表示不禁用
appTypeAppType否应用类型。默认不传值表示企业自建应用,如果是商店应用则必须传入 AppType.ISV。AppType.ISV:商店应用AppType.SelfBuild:自建应用默认值:AppType.SelfBuild
helpDeskIdstring否服务台的 ID。仅在调用服务台业务的 API 时需要配置。可在服务台管理后台 设置中心 > API 凭证 处获取,详情参见服务台接入指南。注意:服务台的 ID、Token 只有服务台创建者可以查看到。img
helpDeskTokenstring否服务台的 token。仅在调用服务台业务的 API 时需要配置。可在服务台管理后台 设置中心 > API 凭证 处获取,详情参见服务台接入指南。注意:服务台的 ID、Token 只有服务台创建者可以查看到。img

步骤二:构造 API 请求#

在项目内创建 API Client 后,即可开始调用飞书开放接口。你可以使用 client.业务域.资源.方法名称 来定位具体的 API 方法,然后对具体 API 发起调用。建议通过 API 调试台快速定位 API 方法,以发送消息接口为例,可以通过地址栏参数拼接 API 方法,也可以查看接口示例代码定位 API 方法,如下图所示。
方式一:查阅指定 API 的示例代码,从代码中直接获取用于构造 API 请求的方法。
方式二:通过指定 API 的浏览器地址栏获取相关参数,以 client.业务域.资源.方法名称 格式拼接 API 方法。
下图中 ① project 代表 业务域
下图中 ② resource 代表 资源
下图中 ③ apiName 代表 方法名称
img
在 NodeJS SDK 1.22 版本开始支持多版本的调用,如果遇到某个业务域(project)下的 API 在 SDK 中搜索不到,可通过 project.version 来获取,例如下图,任务(task)下包含 v1、v2 两个版本(version)。
img
选择 v2 后,会多出一些方法。
img
调用的示例代码如下,代码内通过 client 调用发送消息接口。
import * as lark from '@larksuiteoapi/node-sdk';

// 构建 API Client
const client = new lark.Client({
    appId: 'app id',
    appSecret: 'app secret'
});

// 通过 Client 调用「发送消息」接口
const res = await client.im.message.create({
    params: {
        receive_id_type: 'chat_id',
    },
    data: {
        receive_id: 'receive_id',
        content: JSON.stringify({text: 'hello world'}),
        msg_type: 'text',
  },
});
在 SDK 中包含了 API 对应的飞书开放平台 API 调试台链接,在开发工具内,你可在具体 API 的方法注释中点击 click to debug 跳转 API 调试台进行调试。
img

商店应用调用 API 的必要操作#

如果使用商店应用调用 API,在 client 中必须声明 appType: lark.AppType.ISV,SDK 会根据该声明执行不同的逻辑分支。商店应用的逻辑分支不同于企业自建应用,商店应用必须在代码内传入租户 Key(tenant_key)以及 app_ticket。
商店应用调用 API 为什么需要租户 Key(tenant_key)以及 app_ticket:
tenant_key:一个商店应用会被安装到多个租户中,tenant_key 是租户的唯一标识,用来区分不同的租户。
app_ticket:为了提高数据访问的安全性,飞书对商店应用应用增加了app_ticket作为安全凭证,用于获取商店应用的 app_access_token。每隔 1 小时向商店应用配置的事件订阅请求地址自动推送一次 app_ticket。
获取企业的授权访问凭证 tenant_access_token 时,需要用到这两个值,但这两个值通过 SDK 无法主动获取到,必须由外部传递进来。因此对于商店应用,SDK 提供了一种方式来传递这两个值。
1.
在应用内订阅 app_ticket 事件。
如何订阅事件参考,具体说明参考 app_ticket 事件。
2.
在项目中构造好商店应用的 API Client 后,需要使用 EventDispatcher 接收并处理 app_ticket 事件。
以 node 的默认 HTTP 服务为例,示例代码如下:
import * as http from "http";

const ISVEventDispatcher = new lark.EventDispatcher();

const server = http.createServer();
// /webhook/event 为在开放平台配置的事件接收地址的 Path
server.on('request', lark.adaptDefault('/webhook/event', ISVEventDispatcher));
server.listen(3000);
EventDispatcher 内部会默认接收 app_ticket 事件,将获得的 app_ticket 写到缓存(Cache)中。
3.
使用 client 调用接口,使用 withTenantKey 方法显示传递 tenant_key 值。
client 会结合上一步写入缓存中的 app_ticket,完成 tenant_access_token 的获取(并缓存),最后发起接口调用请求。
import * as fs from "fs";

const res = await SDKClient.im.file.create({
    data: {
        file_type: "mp4",
        file_name: "测试.mp4",
        file: fs.readFileSync("文件路径"),
    }
 }, lark.withTenantKey('tenant key'));

console.log(res);

步骤三(可选):设置请求选项#

在每次发起 API 调用时,你可以设置请求级别的相关参数,例如传递 userAccessToken(用户访问凭证)、自定义 headers 等。
自定义 headers 示例代码如下所示。
await client.im.message.create({
    params: {
        receive_id_type: 'chat_id',
    },
    data: {
        receive_id: 'receive_id',
        content: JSON.stringify({text: 'hello world'}),
        msg_type: 'text',
    },
}, {
    headers: {
        customizedHeaderKey: 'customizedHeaderValue'
    }
});
SDK 内将常用的修改操作封装成了方法,可以使用的方法如下所示。
方法描述
withTenantKey设置租户 Key(tenant_key),使用商店应用调用 API 时,必须传入该值。如何获取参见 tenant_key。
withTenantToken设置应用身份 Token(tenant_access_token)。获取方式:商店应用获取 tenant_access_token自建应用获取 tenant_access_token
withUserAccessToken设置用户身份 Token(user_access_token)。获取方式:获取 user_access_token
withHelpDeskCredential是否在请求中带入服务台 Token。仅在调用服务台业务的 API 时需要配置,Token 可在服务台管理后台 设置中心 > API 凭证 处获取,详情参见服务台接入指南。注意:服务台的 Token 只有服务台创建者可以查看到。img
withAll用于合并上述方法的结果。
以上方法在代码中的配置示例如下,更多代码示例参考 request-with.ts。
// 单个方法的使用示例
await client.im.message.create({
    params: {
        receive_id_type: 'chat_id',
    },
    data: {
        receive_id: 'receive_id',
        content: JSON.stringify({text: 'hello world'}),
        msg_type: 'text',
    },
}, lark.withTenantToken('tenant token'));

// 多个方法的使用示例,需要使用 withAll 合并方法
await client.im.message.create({
    params: {
        receive_id_type: 'chat_id',
    },
    data: {
        receive_id: 'receive_id',
        content: JSON.stringify({text: 'hello world'}),
        msg_type: 'text',
    },
}, lark.withAll([
  lark.withTenantToken('tenant token'),
  lark.withTenantKey('tenant key')
]));

步骤四:运行项目#

完成以上步骤后,即可运行项目调用 API。你可以通过开发工具运行项目,也可以根据项目部署情况在命令行内通过 node {.js 项目文件} 命令运行,如下图所示。
运行成功将返回接口响应参数
img
运行失败则会返回对应的错误码与错误信息
img

API 调用方式介绍#

NodeJS SDK 为了提高 API 调用效率,封装了部分 API 的调用方法,包括分页查询、上传文件、下载文件等。

分页查询#

针对返回值以分页形式呈现的接口,SDK 提供了迭代器方式的封装(方法名后缀为 WithIterator),消除了根据 page_token 反复获取数据的操作,提升易用性。例如,以获取部门直属用户列表接口为例,分页查询方式如下所示。
// 每次处理20条数据
for await (const items of await client.contact.user.findByDepartment({
    params: {
        department_id: '0',
        page_size: 20,
    },
})) {
    console.log(items);
}

// 也可用next来手动控制迭代,每次取20条数据
const listIterator = await SDKClient.contact.user.findByDepartment({
    params: {
        department_id: '0',
        page_size: 20,
    },
});
const { value } = await listIterator[Symbol.asyncIterator]().next();
console.log(value);
你也可以使用无迭代器封装的版本,需要自己每次根据返回的 page_token 来手动进行分页调用。

上传文件#

SDK 内封装了对文件上传的处理逻辑,和普通的 API 调用方式一样,以上传文件接口为例,传递参数即可调用。
如果以上方式实际应用时报错 1061002,可以尝试将 file 类型变为 stream。示例代码如下:

下载文件#

SDK 对返回的二进制流进行了封装,消除了对流本身的处理,调用下载文件接口时,只需要调用 writeFile 方法即可将数据写入文件。
如果想要自定义对流的处理,可以调用 getReadableStream 方法获取到流,如下示例将流写入文件。
import * as fs from 'fs';

const resp = await client.im.file.get({
    path: {
        file_key: 'file key',
    },
});
const readableStream = resp.getReadableStream();
const writableStream = fs.createWriteStream('file url');
readableStream.pipe(writableStream);
注意:流只能被消费一次,即如果使用了 writeFile 消费了流,则 getReadableStream 获取流会报错或者获取到的流为空。如需消费多次流,可以使用 getReadableStream 获取流,然后读取流中的数据做缓存,将缓存的数据给消费方使用。

飞书卡片#

开放平台提供了卡片模板能力,在发送卡片消息时只需要提供模板 ID 和内容即可。SDK 对卡片模板进行了调用上的封装,在支持消息卡片的接口中增加了 ByCard 的调用方式,你只需要传递 template_id 和 template_variable 即可。
client.im.message.createByCard({
  params: {
    receive_id_type: 'chat_id',
  },
  data: {
    receive_id: 'your receive_id',
    template_id: 'your template_id',
    template_variable: {
      content: "Card Content",
      title: "Card Title"
    }
  }
});
如果你需要基于卡片的 JSON 数据发送消息,以调用发送消息接口发送一个简单的具备 title 和 content 的卡片为例,示例代码如下。
client.im.message.create({
  params: {
    receive_id_type: 'chat_id',
  },
  data: {
    receive_id: 'your receive_id',
    content: JSON.stringify({
        "config": {
          "wide_screen_mode": true
        },
        "elements": [
          {
            "tag": "markdown",
            "content": "Card Content"
          }
        ],
        "header": {
          "template": "blue",
          "title": {
            "content": "Card Title",
            "tag": "plain_text"
          }
        }
      }
    ),
    msg_type: 'interactive'
  }
})
示例效果如下:
img
SDK 内置了一个基础消息卡片供你体验。
import * as lark from '@larksuiteoapi/node-sdk';
client.im.message.create({
  params: {
    receive_id_type: 'chat_id',
  },
  data: {
    receive_id: 'your receive_id',
    content: lark.messageCard.defaultCard({
      title: 'Card Title',
      content: 'Card Content'
    }),
    msg_type: 'interactive'
  }
})
示例效果如下:
img

常见问题#

如何快速获取接口对应的示例代码?#

飞书开放平台提供了 API 调试台,通过该平台可以快速调试服务端 API,快速获取资源 ID 及生成多语言示例代码的能力,为您节省开发成本。例如,通过 API 调试台调用发送消息接口,在调试台成功完成测试后,可通过 示例代码 页面查阅 Node SDK 对应的接口调用代码。
img

如何调用历史版本 API、API 调试台搜索不到的 API、SDK 内找不到方法的 API ?#

可以使用 SDK 提供的原生模式调用 API(需要使用 Client 上的 request 方法)。
import * as lark from '@larksuiteoapi/node-sdk';

const client = new lark.Client({
    appId: 'app id',
    appSecret: 'app secret'
});

const res = await client.request({
    method: 'POST',
    url: 'xxx',
    data: {},
    params: {},
});
参数说明如下,你可以通过具体的 API 文档获取以下接口信息。例如:发送消息
method:指定 API 所需的 HTTP Method。
url:指定 API 的 HTTP URL,如果接口有路径参数也需要拼接在 url 内。
data:接口的请求体。
params:接口的查询参数。

在 Client 中自定义 domain 时 URL 后是否需要 ‘/’ ?#

不需要。例如:domain: https://www.example.com 后面不需要加 /。

调用 API 时 Query 参数为列表如何传值?#

方式一:将 NodeJS SDK 升级到 1.37.2 版本解决。
方式二:使用 paramsSerializer 并通过 https://www.npmjs.com/package/qs 序列化参数。
axios.get('/myController/myAction', {
  params: {
    storeIds: [1,2,3]
  },
  paramsSerializer: params => {
    return qs.stringify(params)
  }
})

【飞书】API开发者 微信交流群

用微信扫右侧二维码,加入【飞书】API开发者 交流群,互助沟通

扫码加入交流群
修改于 2025-10-17 07:00:19
上一页
开发前准备
下一页
处理事件
Built with