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

App Script调用DVLA车辆查询API:UrlFetchApp替代方案咨询

如何在App Script中调用英国车辆查询服务(VES)API

先排查UrlFetchApp的调用问题

绝大多数情况不是UrlFetchApp不支持,而是请求配置不符合VES API的强制要求。VES API明确要求:

  • 使用POST请求方法
  • 请求头必须携带x-api-key(你的API密钥)
  • 请求体为JSON格式,包含registrationNumber字段

正确的UrlFetchApp调用示例

function fetchVehicleDetails() {
  const apiKey = "YOUR_VES_API_KEY"; // 替换为你的API密钥
  const regNumber = "AB12CDE"; // 替换为目标车牌号码(无空格、大写)
  const apiUrl = "https://driver-vehicle-licensing.api.gov.uk/vehicle-enquiry/v1/vehicles";

  const requestOptions = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "x-api-key": apiKey
    },
    payload: JSON.stringify({ registrationNumber: regNumber }),
    muteHttpExceptions: true // 开启后可查看错误详情,方便调试
  };

  const response = UrlFetchApp.fetch(apiUrl, requestOptions);
  const statusCode = response.getResponseCode();
  const responseText = response.getContentText();

  if (statusCode === 200) {
    const vehicleData = JSON.parse(responseText);
    console.log("车辆信息:", vehicleData);
    // 可在此处处理返回数据,例如写入Google Sheet
  } else {
    console.error(`请求失败,状态码: ${statusCode},响应: ${responseText}`);
    // 根据错误码排查:401=密钥无效,400=请求格式错误,403=权限未开通
  }
}

如果UrlFetchApp仍无法工作的替代方案

1. 强制指定TLS版本

VES API要求TLS 1.2及以上,UrlFetchApp默认支持,但可显式指定确保兼容:
在requestOptions中添加:

tlsVersion: UrlFetchApp.TLS_VERSION_1_2

2. 集成OAuth2库(适用于OAuth认证场景)

若你的API访问需要OAuth2流程(部分高级权限场景),可使用App Script的OAuth2库:

  • 打开App Script编辑器,点击「资源」→「库」,输入库ID 1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF 添加OAuth2库
  • 按照VES API的OAuth文档配置客户端ID、密钥,获取访问令牌后,在请求头中携带Authorization: Bearer {token}

关键排查点

  • 确认API密钥已在VES开发者门户激活,且权限包含车辆查询服务
  • 车牌号码格式正确:无空格、大写字母(如AB12CDE而非AB 12 CDE)
  • 通过muteHttpExceptions获取的错误响应,对照官方文档的错误码定位问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:43:28