家政维修平台实战09:推送数据到多维表格
目录
- 1 API调试
- 2 创建云函数
- 3 前端调用
- 整体效果
- 总结
上一篇我们搭建了服务分类的后台功能,对于分类的图标通过集成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")手动传递tokendisableTokenCache: 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} = eventif (!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:'启用'}, // 云函数接收的参数,根据自己创建的云函数入参而定})
}
整体效果
当我们在后台点击提交后,在多维表格就可以看到从微搭侧提交的数据
总结
我们本篇介绍了如何用云函数调用多维表格的数据写入接口,将前端提交的数据写入进来。总体上集成是有一点难度的,需要先在多维表格里测试好接口,开通需要的权限,在微搭这一侧要把云函数编写完整了才可以顺利集成。