【问题标题】:Shopify - Get shop domain inside a appShopify - 在应用程序中获取商店域名
【发布时间】:2018-05-06 01:04:34
【问题描述】:

我是 Shopify 应用程序开发的新手,我正在使用 Node、Express 作为后端,并使用 Polaris libaray 做出反应。

我的问题是如何通过应用程序获取请求发起的商店域。当我搜索时,我只能找到一个在 Ruby ShopifyAPI::Shop.current 中使用的东西,而我正在寻找在 node 中使用的类似东西?

【问题讨论】:

  • 我必须使用cookies吗?

标签: shopify shopify-app polaris


【解决方案1】:

例如查看https://github.com/BKnights/kotn-shopify-utils 是的,它使用会话。 该代码非常特殊。我发布它主要是为了在我自己的项目之间分享一种简单的方式,但它对那些人来说效果很好。

如果您在可以扩展服务器的地方使用它,则需要用更分散的东西替换会话引擎。 Cookie 会话有效。

这期望将应用程序的设置页面路由到 /preferences。使用validSession, session, 中间件查看该路由

为了将域传递给 Polaris,我将商店信息放入包含页面上的普通 JS 对象(它是一个dustjs 模板):

      <script type="text/javascript">
    var KotN = {
        shop:'{shop}',
        apiKey: '{apiKey}',
        shopOrigin: 'https://{shop}.myshopify.com',
        locale:'{locale}' || (navigator.languages ? (navigator.language || navigator.languages[0]) : (navigator.userLanguage || navigator.browerLanguage))
    };
  </script>

然后北极星组件看起来像:

import * as React from 'react';
import {EmbeddedApp} from '@shopify/polaris/embedded';
import ShopProvider from './stores/ShopProvider';
import  Status from './views/status';


const shop = KotN.shop;
const shopOrigin = KotN.shopOrigin;
const apiKey = KotN.apiKey;

console.log('shop: '+ shop +' and origin: '+ shopOrigin);


export default class MyApp extends React.Component {
  render() {
    return (
      <EmbeddedApp
        apiKey={apiKey}
        shopOrigin={shopOrigin}
        forceRedirect={true}
        debug={true}
      >
        <ShopProvider>
          <Status />
        </ShopProvider>
      </EmbeddedApp>
    );
  }
}

【讨论】:

  • 谢谢 :) 我想我明白这一点。如果有任何问题我会发表评论
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-05
  • 2017-09-15
  • 2016-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多