You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Apps Script调用Address Validation API报错求助

问题排查与解决方案

核心错误原因

  1. UrlFetchApp 参数误用:你用了body参数传递请求体,但Google Apps Script的UrlFetchApp.fetch()方法并不支持body这个选项,请求体根本没被发送到API,所以返回"Address is missing from request."。
  2. 请求体结构不符合API要求:你的addressLines是单个字符串,但Google Address Validation API要求这个字段是字符串数组;同时,Content-Type的设置方式不正确,应该作为options的contentType属性(而非直接作为顶级键)。

修正后的完整代码

function validateAddress () {
  const url = 'https://addressvalidation.googleapis.com/v1:validateAddress?key=';
  const apikey = '...'; // 替换为你的有效API密钥

  // 修正addressLines为数组,匹配API的参数要求
  const requestBody = {
    "address": {
      "addressLines": ["1600 Amphitheatre Pkwy"]
    }
  };

  const options = {
    muteHttpExceptions: true,
    method: 'POST',
    contentType: 'application/json', // 正确设置请求内容类型
    payload: JSON.stringify(requestBody)
  };

  const response = UrlFetchApp.fetch(url + apikey, options);
  Logger.log(response.getContentText());
}

额外优化方案

你也可以直接传入JavaScript对象作为payload,UrlFetchApp会自动帮你序列化为JSON字符串(前提是设置了contentType: 'application/json'),代码更简洁:

const options = {
  muteHttpExceptions: true,
  method: 'POST',
  contentType: 'application/json',
  payload: requestBody // 直接传对象,无需手动JSON.stringify
};

验证要点

  • 确认API密钥拥有Address Validation API的调用权限,且额度充足。
  • 检查请求体中的其他字段(如需要补充regionCode等)是否符合API文档要求,避免其他结构错误。

内容的提问来源于stack exchange,提问作者sangnandar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:25:58