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

Google App Script调用Shopify GraphQL API返回400错误如何解决

问题根因

你收到400错误的核心原因是请求体格式不符合Shopify GraphQL API的规范:
你当前代码中直接将纯GraphQL查询字符串做了JSON序列化,最终发送的请求体是普通字符串,而Shopify GraphQL要求POST请求的JSON体必须是包含query字段的对象结构,所以服务端识别不到必需的query参数,返回参数缺失错误。

修正后的代码

function shopifySync() {
    var url = "https://store-name.myshopify.com/admin/api/2021-07/graphql.json";
    var payloaddata = `query {orders(first: 20) { edges { node { id } } } }`;

    // 修正:先构造符合规范的请求对象,再做JSON序列化
    var payload = JSON.stringify({
        query: payloaddata
    });
    var password = "api_password"; // 替换为你的私有应用密码

    var response = UrlFetchApp.fetch(url, {
        'method': "POST",
        'muteHttpExceptions': true,
        'headers': { 
            "X-Shopify-Access-Token": password, 
            "Content-Type": "application/json"
        },
        'payload': payload
    });

    Logger.log(response.getContentText());
    Logger.log(response.getResponseCode());
}

额外注意事项

  • 如果查询需要传入变量,可在序列化的对象中新增variables字段传递对应参数值,结构完全遵循GraphQL官方标准
  • 确认你的Shopify私有应用已经开启了订单数据的读取权限,权限不足也会触发请求报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 17:51:04