5

到目前为止我设法做的事情

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

一切似乎都很好。我正在使用 shopify_app gem。

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


我现在想做的事

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

我在以下位置创建了一个新控制器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. 我究竟做错了什么?什么是正确的方法?
4

1 回答 1

0

每当我拨打电话时,它们都与我的应用程序相关,而不是与某个外部 URL 相关……所以在您的情况下…… https://my-app.com/customers可能比 /customers 更好。

于 2018-01-14T23:59:21.607 回答