如何用Node.js调用部署为API可执行文件的Google Apps Script
本地Node.js调用Google Apps Script可执行API示例
前置依赖安装
首先安装Google官方Node.js客户端库:
npm install googleapis
完整调用示例代码
替换代码中的占位符为你实际的信息即可运行:
const { google } = require('googleapis'); // 配置信息,替换为你的实际数据 const CONFIG = { SCRIPT_ID: '你的Google Apps Script的Script ID', SERVICE_ACCOUNT_EMAIL: '你的服务账号邮箱(格式如xxx@xxx.iam.gserviceaccount.com)', SERVICE_ACCOUNT_PRIVATE_KEY: '你的服务账号私钥(直接从JSON密钥文件复制即可)' }; // 初始化JWT认证客户端 const auth = new google.auth.JWT( CONFIG.SERVICE_ACCOUNT_EMAIL, null, CONFIG.SERVICE_ACCOUNT_PRIVATE_KEY.replace(/\\n/g, '\n'), // 处理私钥中的转义换行符 ['https://www.googleapis.com/auth/script.projects', 'https://www.googleapis.com/auth/spreadsheets'] // 所需权限范围 ); // 调用Apps Script方法的核心函数 async function callAppsScriptFunction() { try { // 初始化Script API客户端 const script = google.script({ version: 'v1', auth }); // 调用指定的Apps Script函数,替换为你的实际函数名和参数 const response = await script.scripts.run({ scriptId: CONFIG.SCRIPT_ID, requestBody: { function: '你的Apps Script函数名', // 比如操作表格的readSheetData、updateCell等 parameters: ['参数1', 2, { key: 'value' }] // 函数所需参数,无参数可省略此字段 } }); // 处理返回结果 if (response.data.error) { console.error('调用出错:', response.data.error.details); } else { console.log('调用成功,返回结果:', response.data.response.result); } } catch (err) { console.error('请求异常:', err.message); } } // 执行调用 callAppsScriptFunction();
关键配置与注意事项
- 服务账号权限配置:必须将你的服务账号邮箱添加到目标Google表格的共享列表中,授予对应权限(比如编辑权限,根据脚本操作需求调整)。
- Apps Script部署设置:确认部署时的权限选项符合需求:
- 选“任何人,甚至匿名”可无需认证(不建议生产环境使用);
- 选“特定用户”需确保服务账号邮箱在允许列表内。
- 私钥格式处理:从JSON密钥文件复制的私钥可能包含转义
\n,代码中通过replace(/\\n/g, '\n')还原真实换行符,避免认证失败。
常见问题排查
- 认证失败:检查服务账号邮箱、私钥是否正确,权限范围是否包含
script.projects和spreadsheets。 - 函数调用报错:确认Apps Script中的函数名拼写完全一致,参数类型、数量与函数定义匹配。
- 权限不足:检查表格共享权限是否授予服务账号,以及Apps Script部署的权限设置是否允许当前账号访问。
内容的提问来源于stack exchange,提问作者elena
相关产品推荐
相关产品推荐

