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

使用UrlFetchApp调用Bling API获产品列表时遇无效参数异常求助

问题解决:UrlFetchApp GET请求异常修复

你的代码存在几个关键错误,直接导致了Invalid argument异常,以下是具体修正方案:

错误点分析

  1. URL格式错误:你把完整的curl命令当成了请求URL,UrlFetchApp需要的是纯API端点地址,而非curl命令文本。
  2. GET请求错误携带Payload:GET请求无需(也不应)携带payload参数,且你提供的XML是用于插入产品的,和列表查询接口无关。
  3. 参数传递方式错误:curl的-G参数作用是将-d后的参数转为URL查询字符串,你需要把apikey以查询参数的形式附加到URL,或使用UrlFetchApp的params选项传递。

修正后的代码(推荐写法)

function listaproduto() {
  // 正确的API端点地址
  const baseUrl = 'https://bling.com.br/Api/v2/produtos/json/';
  const apiKey = 'IPutTheKeyHere';
  
  // 配置请求选项:用params传递查询参数,GET请求无需payload
  const options = {
    method: 'GET',
    followRedirects: true,
    muteHttpExceptions: true,
    params: {
      apikey: apiKey
    }
  };

  const response = UrlFetchApp.fetch(baseUrl, options);
  Logger.log(response.getContentText());
}

另一种写法(直接拼接URL参数)

如果你习惯像插入产品时那样直接拼接URL,也可以用这种方式:

function listaproduto() {
  const apiKey = 'IPutTheKeyHere';
  // 直接将apikey作为查询参数拼接到URL后
  const url = `https://bling.com.br/Api/v2/produtos/json/?apikey=${apiKey}`;
  
  const options = {
    method: 'GET',
    followRedirects: true,
    muteHttpExceptions: true
    // 此处无需payload参数
  };

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

关键说明

  • curl命令仅为示例,需转换为UrlFetchApp可识别的格式:-X GET对应method: 'GET',-G -d apikey=xxx对应URL查询参数(拼接URL或用params选项均可)。
  • 产品列表查询接口不需要插入产品时用到的XML数据,务必移除payload中的xml内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:37:02