家政维修平台实战09:推送数据到多维表格

发布于:2025-05-24 ⋅ 阅读:(13) ⋅ 点赞:(0)


上一篇我们搭建了服务分类的后台功能,对于分类的图标通过集成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:'启用'}, // 云函数接收的参数,根据自己创建的云函数入参而定
  })
}

整体效果

当我们在后台点击提交后,在多维表格就可以看到从微搭侧提交的数据
在这里插入图片描述

总结

我们本篇介绍了如何用云函数调用多维表格的数据写入接口,将前端提交的数据写入进来。总体上集成是有一点难度的,需要先在多维表格里测试好接口,开通需要的权限,在微搭这一侧要把云函数编写完整了才可以顺利集成。


网站公告

今日签到

点亮在社区的每一天
去签到