即使我已经注销,如何从/admin/products.json获取数据(普通访问者也可以看到数据)?

时间:2019-03-01 15:49:21

标签: rest api shopify shopify-app

        if ( collectionId ) {
            var url ='/admin/products.json?published_status=published&limit=' + limit + '&page=' + filterPage + '&collection_id=' + collectionId;
        } else {
            var url = '/admin/products.json?published_status=published&limit=' + limit + '&page=' + filterPage;
        }

        $.ajax({
            type: 'GET',
            url: url,
            dataType: 'json',
            contentType: 'application/json',
            headers: {
                'X-Shopify-Access-Token': '',
                // Would it fix my problem? If so, how to generate private token?
                'content-type': 'application/json'
            },
            success: function(data){
            ...
            },
            error: {
            ...
            }
       });

// Works when logged in
// Does not work

我对Shopify还是很陌生,不了解他们的REST如何工作,但是经过长时间的调查,我了解到的是,每次需要product.json时,我都需要以某种方式对请求进行身份验证。

当我退出shopify时,ajax会将我重定向到登录页面,在该页面上可以单击继续。但是什么也没发生。

如果访问令牌可以帮助我,如何生成一个? 我已经修过了这门课程,但这是关于公共应用程序的(即使他说技术方面的公共和私有内容都是一样的)。 https://www.shopify.com/partners/blog/17056443-how-to-generate-a-shopify-api-token

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您应该解释一下您的意思更好。如果您觉得需要,为什么不能仅使用Liquid来呈现产品JSON?所有主题都在其Javascript中完成。

但是,以防万一您出于某些奇怪的原因而无法真正做到这一点,您可以按照以下建议进行操作...

您需要在此停下来!不要尝试从前端访问后端数据,因为这会暴露您的API令牌!相反,有一个简单的模式供您使用:

  • 在商店中安装可以访问您产品的私人应用
  • 使用您在Shopify中的合作伙伴帐户在该应用中设置应用代理
  • 设置您的应用以接收产品ID,并在前端返回所需的特定JSON
  • 在前端,您现在可以对该应用执行GET并安全地接收数据

Shopify停止提供前端的产品详细信息,因为它使商店敞开了大门,以免受到竞争对手的滥用。