上一篇我们搭建了服务分类的后台功能,对于分类的图标通过集成TOS拿到了可以公开访问的地址,本篇我们将写入的数据推送至多维表格中。
1 API调试
要想推送多维表格的数据,首先要利用官方的API调试工具进行接口调试,打开地址
https://open.feishu.cn/api-explorer/cli_a8a6a4c77ff9d00c?apiName=create&from=op_doc_tab&project=bitable&resource=app.table.record&version=v1
首先要获取token
调试的时候先要在多维表格给我们的集成应用开通权限,点击更多,添加我们的应用
接着要填入app_token和table_id,这两个参数需要在浏览器打开我们的多维表格获取
然后就是构造我们的请求体
构造好之后点击开始调试,可以看到右侧的调试结果,如果看到绿色表示写入成功
2 创建云函数
在飞书上调试成功后,我们就需要在微搭上搭建云函数了。点击新建云函数
输入函数的名称
从列表上点击云函数名称,进入编辑器,切换到函数代码,选择前端编辑器
点击新建文件,创建一个package.json文件
输入如下的配置
{
"name": "app",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {},
"author": "",
"license": "ISC",
"dependencies": {
"@cloudbase/node-sdk": "latest",
"@larksuiteoapi/node-sdk":"latest"
}
}
在index.js中输入如下代码
'use strict';
const lark = require('@larksuiteoapi/node-sdk');
// 开发者复制该Demo后,需要修改Demo里面的"app id", "app secret"为自己应用的appId, appSecret
const client = new lark.Client({
appId: '',
appSecret: '',
// disableTokenCache为true时,SDK不会主动拉取并缓存token,这时需要在发起请求时,调用lark.withTenantToken("token")手动传递
// disableTokenCache为false时,SDK会自动管理租户token的获取与刷新,无需使用lark.withTenantToken("token")手动传递token
disableTokenCache: true
});
async function getTenantToken() {
try {
const response = await fetch('https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal', {
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
body: JSON.stringify({
app_id: '',
app_secret: ''
})
});
const data = await response.json();
return data.tenant_access_token;
} catch (error) {
console.error('获取tenant_access_token失败:', error);
return null;
}
}
exports.main = async (event, context) => {
const tenantToken = await getTenantToken();
const {name,desc,url,order,status} = event
if (!tenantToken) {
return { code: -1, msg: '获取tenant_access_token失败' };
}
console.log('tenantToken',tenantToken)
const res = await client.bitable.v1.appTableRecord.create({
path: {
app_token: '',
table_id: '',
},
data: {
fields:{
"分类名称": name,
"分类描述": desc,
"分类图标": {
"text": "分类图标",
"link": url
},
"排序值":order,
"分类状态": status
}
},
},
lark.withTenantToken(tenantToken)
)
return {code:0,msg:'写入成功',res:res}
};
方法写好之后,点击测试传入必要的参数
这里的密钥可以在开放平台获取到
3 前端调用
云函数写好之后,就可以在前端调用了。打开我们的后台应用,在表单提交后调用一下我们的云函数
入参我们可以从表单提交的参数里获取
() => {
$w.cloud.callFunction({
name: "addFeishuCategroyRecords", // TCB 云函数名称
data: { name:$w.form1.submitParams.data.name,desc:$w.form1.submitParams.data.description,url:$w.form1.submitParams.data.iconUrl ,order:$w.form1.submitParams.data.order,status:'启用'}, // 云函数接收的参数,根据自己创建的云函数入参而定
})
}
整体效果
当我们在后台点击提交后,在多维表格就可以看到从微搭侧提交的数据
总结
我们本篇介绍了如何用云函数调用多维表格的数据写入接口,将前端提交的数据写入进来。总体上集成是有一点难度的,需要先在多维表格里测试好接口,开通需要的权限,在微搭这一侧要把云函数编写完整了才可以顺利集成。