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

Google Apps Script中UrlFetchApp.fetch调用WooCommerce API异常问题

解决UrlFetchApp调用WooCommerce API参数失效问题

核心问题原因

你脚本中的URL使用了HTML转义字符&作为参数分隔符,而Google Apps Script的JavaScript字符串无需HTML转义,服务器会将&识别为普通字符,导致min_date之后的参数无法被正确解析,最终返回默认的无参数过滤结果。

解决方案

1. 修正URL中的参数分隔符

直接将URL中的&替换为原生的&,确保服务器能正确识别每个查询参数:

function myFunction() { 
    var url = "https://kidswonder.net/wp-json/wc-bookings/v1/products/slots?min_date=2023-01-30&max_date=2023-01-31&product_ids=16304";
    var response = UrlFetchApp.fetch(url);
    Logger.log(response.getContentText());
}

2. 用参数对象构建URL(更规范可靠)

手动拼接URL容易出现转义错误,建议通过参数对象动态构建URL,自动处理编码:

function myFunction() {
    var baseUrl = "https://kidswonder.net/wp-json/wc-bookings/v1/products/slots";
    var params = {
        min_date: "2023-01-30",
        max_date: "2023-01-31",
        product_ids: 16304
    };

    // 动态拼接带编码的查询参数
    var queryString = Object.keys(params).map(key => {
        return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`;
    }).join("&");

    var url = `${baseUrl}?${queryString}`;
    var response = UrlFetchApp.fetch(url);
    Logger.log(response.getContentText());
}

3. 添加API认证头(若需要)

浏览器访问正常可能是因为保留了登录会话,但UrlFetchApp无会话状态,如果WooCommerce API启用了认证,需添加Basic Auth头:

function myFunction() {
    var baseUrl = "https://kidswonder.net/wp-json/wc-bookings/v1/products/slots";
    var params = {
        min_date: "2023-01-30",
        max_date: "2023-01-31",
        product_ids: 16304
    };

    var queryString = Object.keys(params).map(key => {
        return `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`;
    }).join("&");

    var url = `${baseUrl}?${queryString}`;

    // 替换为你的WooCommerce API密钥
    var consumerKey = "你的消费者密钥";
    var consumerSecret = "你的消费者密钥密码";
    var options = {
        headers: {
            "Authorization": "Basic " + Utilities.base64Encode(`${consumerKey}:${consumerSecret}`)
        }
    };

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

验证方式

执行脚本后查看日志,若返回数据与浏览器访问结果一致,说明参数已被正确识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:50:17