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

Google Apps Script调用Snov.io GET接口返回HTML而非JSON问题求助

问题原因

核心问题是 Google Apps Script 中 UrlFetchApp 的 GET 请求参数传递方式错误:

  • Python 的 requests.get 方法的 params 参数会自动将参数拼接为 URL 查询字符串,符合 GET 请求的参数传递规范
  • 但 UrlFetchApp 中的 payload 字段是为 POST、PUT 等需要请求体的请求设计的,GET 请求添加 payload 后,参数会被放到请求体中,服务端无法识别 GET 请求的请求体参数,因此触发服务端错误,返回报错 HTML 页面。
  • 你贴出的 AppScript 代码片段本身还有语法错误:params 对象缺少开头的变量声明和左大括号。

修正后可运行代码

function getSnovEmails(token, site) {
  // 构造请求参数
  const params = {
    'access_token': token,
    'domain': site,
    'type': 'all',
    'limit': 100,
    'lastId': 0,
  };
  // 手动将参数转为查询字符串拼接到URL后
  const queryStr = Object.keys(params)
    .map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
    .join('&');
  const requestUrl = `https://api.snov.io/v2/domain-emails-with-info?${queryStr}`;

  // 发送GET请求,不需要payload字段
  const response = UrlFetchApp.fetch(requestUrl, {
    method: 'get',
    muteHttpExceptions: true
  });

  // 先校验响应状态再解析
  if (response.getResponseCode() === 200) {
    const resData = JSON.parse(response.getContentText());
    return resData.emails;
  } else {
    console.error('请求失败,状态码:' + response.getResponseCode() + ',错误信息:' + response.getContentText());
    return [];
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:15:03