【问题标题】:Call Shopify API from React从 React 调用 Shopify API
【发布时间】:2018-06-23 14:37:07
【问题描述】:

到目前为止我所做的事情

我按照本指南设置了一个带有 Rails 后端 + React 的 Shopify 应用: https://medium.com/@esimonian16/setting-up-a-shopify-app-with-rails-5-1-webpack-react-and-polaris-b8535d911275

似乎一切正常。我正在使用 shopify_app gem。

当我在商家仪表板中导航到我的应用程序时,Rails 中的主控制器会呈现一个 React 应用程序,该应用程序显示一些产品(这些是从 rails 以 json 形式传递的)。


我现在想做的事

我想在 React 'List customers' 中有一个按钮,然后它应该更新 react 组件并将所有客户显示为一个列表。

我在my-app.com/customers创建了一个新控制器

class CustomersController < ShopifyApp::AuthenticatedController
    def index
        customers = ShopifyAPI::Customer.find(:all, params: { limit: 10 })
        render json: customers
    end
end

如果我在浏览器中转到my-app.com/customers,我会得到正确的 json 响应。


然后我尝试从 React 中获取这些数据。

fetch('https://my-app.com/customers', {
      headers : { 
        'Content-Type': 'application/json',
        'Accept': 'application/json'
       }
})
.then(response => response.json())
.then(parsedJSON => {
  console.log(parsedJSON);

  // Update state
  // this.setState(...);
})
.catch(error => console.error(error));

Rails 后端不允许请求获取这些数据,因为它没有被授权,所以它被重定向到/login

在 React 中,我可以访问 session.token,但是我不确定如何使用它来验证我的请求?

问题

  1. 如何对 Shopify API 进行此类调用?我是否尝试了正确的方法,即在 React 和实际 Shopify Api 调用之间使用我的后端?
  2. 如何验证我的调用,以便它们通过就像我在浏览器中调用 /customers 一样?
  3. 我想直接从 React 调用 Shopify Api 是一个非常糟糕的主意,因为我会将我的秘密暴露给全世界,对吧?
  4. 我做错了什么?正确的做法是什么?

【问题讨论】:

    标签: ruby-on-rails ruby shopify shopify-app


    【解决方案1】:

    每当我拨打电话时,它们都与我的应用程序相关,而不是与某个外部 URL...

    【讨论】:

      猜你喜欢
      • 2023-04-10
      • 1970-01-01
      • 2018-06-01
      • 2017-09-14
      • 1970-01-01
      • 1970-01-01
      • 2020-10-16
      • 2012-07-09
      • 2021-01-30
      相关资源
      最近更新 更多