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

news2025/5/26 2:06:30

目录

  • 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")手动传递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:'启用'}, // 云函数接收的参数,根据自己创建的云函数入参而定
  })
}

整体效果

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

总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385769.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端框架token相关bug,前后端本地联调

今天我搭建框架的时候,我想请求我自己的本地!然后我自己想链接我自己的本地后端,我之前用的前端项目,都是链别人的后端,基本上很少情况会链接自己的后端!所以我当时想的是,我前后端接口一样&…

卷积神经网络(CNN)可视化技术详解:从特征学到演化分析

在深度学习领域,卷积神经网络(CNN)常被称为“黑箱”,其内部特征提取过程难以直接观测。而 可视化技术 是打开这一“黑箱”的关键工具,通过可视化可直观了解网络各层学到了什么、训练过程中如何演化,以及模型…

QT之INI、JSON、XML处理

文章目录 INI文件处理写配置文件读配置文件 JSON 文件处理写入JSON读取JSON XML文件处理写XML文件读XML文件 INI文件处理 首先得引入QSettings QSettings 是用来存储和读取应用程序设置的一个类 #include "wrinifile.h"#include <QSettings> #include <QtD…

微信小程序调用蓝牙API “wx.writeBLECharacteristicValue()“ 报 errCode: 10008 的解决方案

1、问题现象 问题:在开发微信小程序蓝牙通信功能时,常常会遇到莫名其妙的错误,查阅官方文档可能也无法找到答案。如在写入蓝牙数据时,报了这样的错误: {errno: 1500104, errCode: 10008, errMsg: "writeBLECharacteristicValue:fail:system error, status: UNKNOW…

【Java基础笔记vlog】Java中常见的几种数组排序算法汇总详解

Java中常见的几种排序算法&#xff1a; 冒泡排序&#xff08;Bubble Sort&#xff09;选择排序&#xff08;Selection Sort&#xff09;插入排序&#xff08;Insertion Sort&#xff09;希尔排序&#xff08;Shell Sort&#xff09;归并排序&#xff08;Merge Sort&#xff09…

WebRTC与RTSP|RTMP的技术对比:低延迟与稳定性如何决定音视频直播的未来

引言 音视频直播技术已经深刻影响了我们的生活方式&#xff0c;尤其是在教育、医疗、安防、娱乐等行业中&#xff0c;音视频技术成为了行业发展的重要推动力。近年来&#xff0c;WebRTC作为一种开源的实时通信技术&#xff0c;成为了音视频领域的重要选择&#xff0c;它使得浏览…

spring cloud alibaba Sentinel详解

spring cloud alibaba Sentinel详解 spring cloud alibaba Sentinel介绍 Sentinel 是阿里巴巴开源的一款动态流量控制组件&#xff0c;主要用于保障微服务架构中的服务稳定性。它能够对微服务中的各种资源&#xff08;如接口、服务方法等&#xff09;进行实时监控、流量控制、…

React19源码系列之渲染阶段performUnitOfWork

在 React 内部实现中&#xff0c;将 render 函数分为两个阶段&#xff1a; 渲染阶段提交阶段 其中渲染阶段可以分为 beginWork 和 completeWork 两个阶段&#xff0c;而提交阶段对应着 commitWork。 在之前的root.render过程中&#xff0c;渲染过程无论是并发模式执行还是同…

DL00987-基于深度学习YOLOv11的红外鸟类目标检测含完整数据集

提升科研能力&#xff0c;精准识别红外鸟类目标&#xff01; 完整代码数据集见文末 针对科研人员&#xff0c;尤其是研究生们&#xff0c;是否在鸟类目标检测中遇到过数据不够精准、处理困难等问题&#xff1f;现在&#xff0c;我们为你提供一款基于深度学习YOLOv11的红外鸟类…

黑马程序员C++2024新版笔记 第4章 函数和结构体

1.结构体的基本应用 结构体struct是一种用户自定义的复合数据类型&#xff0c;可以包含不同类型的成员。例如&#xff1a; struct Studet {string name;int age;string gender; } 结构体的声明定义和使用的基本语法&#xff1a; struct 结构体类型 {成员1类型 成员1名称;成…

数据仓库,扫描量

有五种通用技术用于限制数据的扫描量&#xff0c;正如图3 - 4所示。第一种技术是扫描那些被打上时戳的数据。当一个应用对记录的最近一次变化或更改打上时戳时&#xff0c;数据仓库扫描就能够很有效地进行&#xff0c;因为日期不相符的数据就接触不到了。然而&#xff0c;目前的…

Vue3性能优化: 大规模列表渲染解决方案

# Vue3性能优化: 大规模列表渲染解决方案 一、背景与挑战 背景 在大规模应用中&#xff0c;Vue3的列表渲染性能一直是开发者关注的焦点。大规模列表渲染往往会导致卡顿、内存占用过高等问题&#xff0c;影响用户体验和系统整体性能。 挑战 渲染大规模列表时&#xff0c;DOM操作…

【RocketMQ 生产者和消费者】- 生产者启动源码 - MQClientInstance 定时任务(4)

文章目录 1. 前言2. startScheduledTask 启动定时任务2.1 fetchNameServerAddr 拉取名称服务地址2.2 updateTopicRouteInfoFromNameServer 更新 topic 路由信息2.2.1 topic 路由信息2.2.2 updateTopicRouteInfoFromNameServer 获取 topic2.2.3 updateTopicRouteInfoFromNameSer…

超全GPT-4o 风格提示词案例,持续更新中,附使用方式

本文汇集了各类4o风格提示词的精选案例&#xff0c;从基础指令到复杂任务&#xff0c;从创意写作到专业领域&#xff0c;为您提供全方位的参考和灵感。我们将持续更新这份案例集&#xff0c;确保您始终能够获取最新、最有效的提示词技巧。 让我们一起探索如何通过精心设计的提…

Android 自定义SnackBar和下滑取消

如何自定义SnackBar 首先我们得了解SnackBar的布局&#xff1a; 之前我看有一些方案是获取内部的contentLayout&#xff0c;然后做一些处理。但是现在已经行不通了&#xff1a; RestrictTo(LIBRARY_GROUP) public static final class SnackbarLayout extends BaseTransientB…

Netty学习专栏(三):Netty重要组件详解(Future、ByteBuf、Bootstrap)

文章目录 前言一、Future & Promise&#xff1a;异步编程的救星1.1 传统NIO的问题1.2 Netty的解决方案1.3 代码示例&#xff1a;链式异步操作 二、ByteBuf&#xff1a;重新定义数据缓冲区2.1 传统NIO ByteBuffer的缺陷2.2 Netty ByteBuf的解决方案2.3 代码示例&#xff1a;…

详解 C# 中基于发布-订阅模式的 Messenger 消息传递机制:Messenger.Default.Send/Register

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

多场景游戏AI新突破!Divide-Fuse-Conquer如何激发大模型“顿悟时刻“?

多场景游戏AI新突破&#xff01;Divide-Fuse-Conquer如何激发大模型"顿悟时刻"&#xff1f; 大语言模型在强化学习中偶现的"顿悟时刻"引人关注&#xff0c;但多场景游戏中训练不稳定、泛化能力差等问题亟待解决。Divide-Fuse-Conquer方法&#xff0c;通过…

Java 函数式接口(Functional Interface)

一、理论说明 1. 函数式接口的定义 Java 函数式接口是一种特殊的接口&#xff0c;它只包含一个抽象方法&#xff08;Single Abstract Method, SAM&#xff09;&#xff0c;但可以包含多个默认方法或静态方法。函数式接口是 Java 8 引入 Lambda 表达式的基础&#xff0c;通过函…

分布式锁总结

文章目录 分布式锁什么是分布式锁&#xff1f;分布式锁的实现方式基于数据库(mysql)实现基于缓存(redis)多实例并发访问问题演示项目代码(使用redis)配置nginx.confjmeter压测复现问题并发是1&#xff0c;即不产生并发问题并发30测试,产生并发问题(虽然单实例是synchronized&am…