apass-opensdk-hugong
Version:
飞书Apass低代码平台-飞书开放平台-相关的接口整合和常用的方法整合
156 lines (124 loc) • 5.19 kB
Markdown
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