【问题标题】:App Script Shopify GraphQL Request - 400 response应用脚本 Shopify GraphQL 请求 - 400 响应
【发布时间】:2021-10-22 12:07:22
【问题描述】:

我正在尝试通过 Google 应用脚本调用 Shopify 的 GraphQL API。

我已使用相同的正文和身份验证值通过 Postman 成功拨打电话,并且工作正常。

但是,当通过 App Script 调用 API 时,我不断收到 400 响应代码,并带有以下错误消息 {"errors":{"query":"Required parameter missing or invalid"}}

这是我正在使用的代码:

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

    var payload = JSON.stringify(payloaddata);
    var password = "api_password"; //Private Shopify App


    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());
}

在 Shopify 的文档中,400 HTTP 响应被归类为“错误请求”,解释是:

服务器无法理解请求,通常是由于语法错误或 Content-Type 标头未正确设置为 application/json。 如果请求在 OAuth 令牌交换过程中提供了无效的 code 参数,也会返回此状态。

来源:https://shopify.dev/api/usage/response-codes

如何解决此问题并成功调用 Shopify 的 GraphQL API?

【问题讨论】:

    标签: javascript google-apps-script graphql shopify-api


    【解决方案1】:

    我在另一家 Saas 公司的 GraphQL 文档中找到了解决方案。

    问题在于有效载荷的格式

    我是如何尝试的:

    'payload': payload
    

    应该如何:

    'payload': JSON.stringify({'query': payloaddata})
    

    适用于 Shopify 的 2021-07 GraphQL API 的最终代码:

        var url = "https://store-name.myshopify.com/admin/api/2021-07/graphql.json";
        var payloaddata = 'query {orders(first: 20) { edges { node { id } } } }';
    
        var password = "api_password";
    
        var response = UrlFetchApp.fetch(url, {
            'method': "POST",
            'muteHttpExceptions': true,
            'headers': { "X-Shopify-Access-Token": password , "Content-Type": "application/json"},
            'payload': JSON.stringify({'query': payloaddata})
        });
    

    【讨论】:

      猜你喜欢
      • 2017-09-25
      • 1970-01-01
      • 2019-08-20
      • 2014-08-19
      • 1970-01-01
      • 1970-01-01
      • 2019-12-29
      • 2015-04-28
      • 2021-07-10
      相关资源
      最近更新 更多