使用Google Apps Script从API拉取数据并解析JSON至表格列
完整实现:用Google Apps Script从API拉取欺诈报告数据并写入Google Sheets
看起来你需要把从24metrics欺诈防护API拉取的JSON数据解析到Google Sheets中,我帮你把代码补全并做了优化,不仅能实现核心需求,还加了错误处理和可维护性的改进:
完整可运行代码
function fetchFraudReport() { // 1. 配置API核心参数,替换成你的实际值 const apiConfig = { trackerId: "905", dateStart: "2018-01-18", dateEnd: "2018-01-18", timezone: "UTC", userId: "XXX", // 替换为你的真实user_id apiToken: "XXX" // 替换为你的真实api_token }; // 2. 构建请求URL(把参数单独提取出来,方便后续修改) const apiUrl = `https://fraudshield.24metrics.com/api/v1/reports/fraud.json?tracker_id=${apiConfig.trackerId}&group[]=sub_id&group[]=partner&date_start=${apiConfig.dateStart}&date_end=${apiConfig.dateEnd}&timezone=${apiConfig.timezone}&user_id=${apiConfig.userId}&api_token=${apiConfig.apiToken}`; try { // 3. 发起HTTP请求,捕获异常响应 const response = UrlFetchApp.fetch(apiUrl, { muteHttpExceptions: true }); const responseCode = response.getResponseCode(); // 检查请求是否成功 if (responseCode !== 200) { throw new Error(`请求失败,状态码:${responseCode},响应内容:${response.getContentText()}`); } // 4. 解析JSON响应(假设API返回的核心数据在`data`字段下,这是API常见格式) const jsonData = JSON.parse(response.getContentText()); const reportData = jsonData.data; if (!reportData || reportData.length === 0) { SpreadsheetApp.getUi().alert("没有获取到有效数据"); return; } // 5. 准备目标工作表(替换为你实际的工作表名称) const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("欺诈报告"); if (!sheet) { throw new Error("找不到名为'欺诈报告'的工作表,请先创建或修改代码中的工作表名称"); } // 清空旧数据(保留表头行) sheet.clearContents(); // 6. 设置表头(需与API返回的字段完全对应,可按需调整顺序) const headers = ["sub_id", "partner", "clicks", "fraud_clicks", "conversions"]; // 替换为API返回的实际字段 sheet.getRange(1, 1, 1, headers.length).setValues([headers]); // 7. 整理数据并批量写入表格 const rows = reportData.map(item => { // 按表头顺序提取对应字段值,无值则填充为空字符串 return headers.map(header => item[header] || ""); }); if (rows.length > 0) { sheet.getRange(2, 1, rows.length, headers.length).setValues(rows); SpreadsheetApp.getUi().alert(`数据导入成功,共导入${rows.length}条记录`); } } catch (error) { SpreadsheetApp.getUi().alert(`执行出错:${error.message}`); console.error(error); // 控制台输出详细错误,方便调试 } }
关键注意事项
- 参数替换:务必把
apiConfig里的userId和apiToken换成你的真实凭证,trackerId、日期范围也可按需调整。 - 表头匹配:
headers数组要和API返回的JSON对象字段完全一致,比如如果API返回的每条数据有revenue字段,就把它加入表头数组。 - 工作表名称:确保你的Google Sheets里存在对应名称的工作表(示例中是"欺诈报告"),如果名称不同,修改
getSheetByName的参数即可。 - 错误排查:代码里加了请求状态检查、工作表存在性验证、空数据判断,还有全局异常捕获,执行出错时会弹出提示,也可以查看脚本编辑器的控制台获取详细错误信息。
内容的提问来源于stack exchange,提问作者Carlo Rubinstein
相关产品推荐
相关产品推荐

