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

Snov.io Python API POST示例转Google Script报JSON解析错误求解

问题原因定位

1. 核心错误:UrlFetchApp参数结构错误

Python的requests.post方法会将data参数的内容直接作为表单请求体发送,但Google Script的UrlFetchApp.fetch的第二个参数是请求配置对象,请求体数据必须放在配置的payload属性中。你现在把grant_type、client_id这类鉴权参数直接和method平级放在配置外层,导致实际发出的请求携带空请求体,接口返回了非JSON格式的错误响应或空响应,JSON解析时就触发了Unexpected end of JSON input错误。

2. 次要错误:返回值取值路径错误

Snov.io的oauth接口返回的access_token直接在响应JSON的根节点下,你代码中多写了一层.result,就算请求成功也会触发取值报错。

修复后代码
function getSnovAccessToken() {
  var params = {
    'method': 'post',
    // 所有请求体参数放在payload字段中
    'payload': {
      'grant_type':'client_credentials',
      'client_id':'c57a0459f6t141659ea75cccb393c111',
      'client_secret': '77cbf92b71553e85ce3bfd505214f40b'
    }
  }
  var url = 'https://api.snov.io/v1/oauth/access_token';

  try {
    var response = UrlFetchApp.fetch(url, params);
    var jsonStr = response.getContentText();
    // 排查时可打开下方日志打印,查看接口实际返回内容
    // Logger.log(jsonStr);
    var obj = JSON.parse(jsonStr);
    // 直接从根节点取access_token
    return obj.access_token;
  } catch (e) {
    Logger.log('错误信息:' + e.toString());
    if (response) {
      Logger.log('接口返回内容:' + response.getContentText());
    }
    return null;
  }
}
排查建议

如果修改后仍报错,可打开Google Script的日志面板查看打印的接口返回内容,确认是否是client_id、client_secret填写错误导致鉴权失败,返回了非JSON格式的错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:36:03