UNPKG

apass-opensdk-hugong

Version:

飞书Apass低代码平台-飞书开放平台-相关的接口整合和常用的方法整合

156 lines (124 loc) 5.19 kB
# apass-opensdk-hugong ## 简介 apass-opensdk-hugong 是一个基于apass-opensdk的封装,提供了一些常用的功能 - 什么人可以使用这个SDK - 从事飞书低代码平台(APASS)开发人员. ## 安装 ``` 在飞书低代码平台(云函数)依赖管理-右侧-搜索: apass-opensdk-hugong 最近有同学私聊我说Apass无法安装1.0.0以上的包,解决思路: 先安装1.0.0版本,然后打开yarn.lock文件 ====== 找到这一行 ===== apass-opensdk-hugong@1.0.0: version "1.0.0" resolved "https://registry.npmmirror.com/apass-opensdk-hugong/-/apass-opensdk-hugong-1.0.0.tgz#ef2d0a19e793358784cb764de4b885fd86befd66" integrity sha512-Q8Gpo9v8a/2G43y/Lh2POyDEOcealFuUlGdqGSA9wyfjET4+LWs/PnzK9EB1YZCjQotW7cGO/9a0MiQ6Sgw1LA== ====== 找到这一行 ===== 将版本改为最新的版本号后,然后保存,重写部署即可使用NPM源最新的版本 修改后的yarn.lock文件如下, 一共三处地方: apass-opensdk-hugong@1.0.3: version "1.0.3" resolved "https://registry.npmmirror.com/apass-opensdk-hugong/-/apass-opensdk-hugong-1.0.3.tgz#ef2d0a19e793358784cb764de4b885fd86befd66" integrity sha512-Q8Gpo9v8a/2G43y/Lh2POyDEOcealFuUlGdqGSA9wyfjET4+LWs/PnzK9EB1YZCjQotW7cGO/9a0MiQ6Sgw1LA== ``` ## 如何使用 ``` const Hugong = require('apass-opensdk-hugong'); 初始化 const hg = new Hugong(logger) ``` ## 常用 ``` 显示运行时间 hg.newTime() hg.printTime() 线程睡眠(毫秒) await hg.sleep(2000) 支持将数组分割成指定长度分段数组 第一种用法,一次性返还分割后的数组 const list = hg.utils.splitArray([], 50) 输出 [ [50],[50] ] 第二种用法,每次输出50条 处理完成后继续下次执行 await hg.utils.splitArray([], 10, async (items)=>{ // do something }) ``` ## 文件上传/下载 ``` 1)从网络下载文件后上传到飞书租户空间,返回上传后的文件信息 await hg.utils.file.downloadFileToUpload(url) 2)如果有鉴权, 可以传递header参数 await hg.utils.file.downloadFileToUpload(url,{ Authorization: `...`}) 3)保存数据到本地环境中,比如接口返回的数据需要保存到本地环境中方便查看 saveDataToEnv(data,path) 1)从飞书租户空间下载文件到本地环境中 file_info={ id, mime_type, name, ...} file_path=存储地址可选,不填写则默认当前时间戳 await hg.utils.file.downloadFileToTmp(fileInfo,file_path) 2)解析csv文件,file_path必须是本地环境的文件路径 /tep/aaa.csv 可以使用上面的方法downloadFileToTmp下载文件到本地环境中 await hg.utils.file.csvRead(file_path,callback) 示例1 读取完成后返回数组 const list = await hg.utils.file.csvRead(file_path) 示例2 读取完成后回调 await hg.utils.file.csvRead(file_path,async (row)=>{ // do something }) ``` ## 小工具/多语言 ``` 对象数据新增多语言对象 生成多语言对象 hg.toMultilingual([{ lang: 'en-US', value: 'Regular' },{ lang: 'zh-CN', value: '正式' }]) 常用于开放平台返回的多语言数据转换 hg.toMultilingual(zh,en) 安全的取值 hg.toSafeValue(obj={},key,defValue) ``` ## 飞书人事 搜索员工信息 ``` 设置appid和appsecret await hg.setAppId('cli_000000000','0000000000000') /** * 搜索员工信息 * @param {*} params * @param {*} data * @param {*} callback callback(items) 结果回调(根据总数可能多次调用)- 可选 * @returns 如果callback为传递则一次性返回所有的数据 */ await hg.employee.search(params,data,callback) // 示例[具体参数请参考开放平台定义](https://open.feishu.cn/document/server-docs/corehr-v1/employee/search) await hg.employee.search({ page_size:100,user_id_type:'user_id',},{ /* 要查询的字段 */}, async (items)=>{ // do something 假设服务端有300条数据,每次返回100条,会调用3次, 如果希望一次性返回所有数据,callback传null即可 }) const list = await hg.employee.search(params,data) //这将一次性返回所有数据 ``` ## 开放平台分页获取所有数据 所有的分页接口都可以使用 ``` 设置appid和appsecret await hg.setAppId('cli_000000000','0000000000000') /** * GET类型接口分页返回开放平台数据 * @param {*} url * @param {*} params * @param {*} callback callback(items) 结果回调(根据总数可能多次调用)- 可选 * @returns callback为null,则一次性返回所有的数据 */ hg.paginatedSearchGet(url,params,callback) /** * POST接口分页返回开放平台数据 * @param {*} url * @param {*} params * @param {*} data * @param {*} callback callback(items) 结果回调(根据总数可能多次调用)- 可选 * @returns callback为null,则一次性返回所有的数据 */ await hg.paginatedSearch(url,params,data,callback) 示例1 const list = await hg.paginatedSearchGet(url, params, data) 示例2 await hg.paginatedSearchGet(url, params, async (items)=>{ // do something 假设服务端有300条数据,每次返回100条,会调用3次, 如果希望一次性返回所有数据,callback传null即可 }) ``` ## 交流学习 从事飞书低代码平台(APASS)开发人员3年,欢迎交流学习 VX:IAMRuiyu