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

在Google App Script中调用Growatt API遇权限拒绝,求正确方案

解决Growatt queryLastData API的"Access Denied"问题

以下是修正后的Google App Script代码,可解决你的请求错误:

const url = 'https://openapi.growatt.com/v4/new-api/queryLastData';

const options = {
  method: 'POST',
  headers: {
    'token': 'xxMyTokenxx',
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  payload: {
    deviceType: 'sph',
    deviceSn: 'xxMySNxx'
  }
};

try {
  const response = UrlFetchApp.fetch(url, options);
  console.log(response.getContentText());
} catch (error) {
  console.error('请求失败:', error.toString());
}

原代码的错误点分析:

  • Token位置错误:API要求token作为HTTP请求头传递,原代码直接把token放在options根节点,必须移到headers对象内。
  • Payload格式不匹配:Postman使用的是application/x-www-form-urlencoded格式(对应--data-urlencode参数),但你用JSON.stringify()把数据转成了JSON格式,与API要求不符。UrlFetchApp会自动将payload中的对象编码为x-www-form-urlencoded格式,直接传入对象即可。
  • 缺少Content-Type声明:虽然UrlFetchApp在传入对象类型的payload时会自动设置该头,但显式声明可避免默认行为的不确定性,确保请求格式正确。
  • Cookie处理:Postman中的Cookie是自动生成的会话标识,根据你提供的API文档描述,这部分并非必需项。如果测试后仍报错,可尝试在headers中添加Cookie字段(复制Postman中的对应值),但优先使用上述精简版本测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 09:26:02