shopify-api-node返回私有应用未经授权的状态401

时间:2019-02-20 00:31:58

标签: javascript node.js promise shopify shopify-app

我正在尝试使用名为shopify-node-api的npm软件包制作NodeJS应用程序。

请注意,这是在Shopify合作伙伴帐户中生成的私有应用。我已经按照文档的说明通过了shopNameapiKeypassword

    const Shopify = require('shopify-api-node');

    const shopify = new Shopify({
      shopName: 'your-shop-name',
      apiKey: 'your-api-key',
      password: 'your-app-password'
    });

但是,当尝试执行类似于 GET 的简单操作时:

    shopify.product.get()
    .then(products =>  res.send(products))
    .catch(err => res.send(err));

我收到:

    {
        "name": "HTTPError",
        "hostname": "your-shop-name",
        "method": "GET",
        "path": "/admin/products.json",
        "protocol": "https:",
        "statusCode": 401,
        "statusMessage": "Unauthorized",
        "headers": {...}
    }

对于所有Shopify应用程序/ JavaScript专家,请提供我所忽略的建议?

2 个答案:

答案 0 :(得分:1)

最终,我的错误是使用这些绑定错误地使用了API调用。

代替:

 shopify.product.get()
.then(products =>  res.send(products))
.catch(err => res.send(err));

我应该一直使用这个:

shopify.product.list()
.then(products =>  res.send(products))
.catch(err => res.send(err));

答案 1 :(得分:0)

检查API密钥,以确保已赋予它访问产品所需的范围。未能要求提供产品的读/写范围将是401的一个很好的线索。或者您没有按照商店提供给您的信息传递api密钥和密码。