私人嵌入式shopify应用程序

时间:2014-05-29 18:49:57

标签: javascript html sdk shopify

我正在尝试构建嵌入式私有应用程序以及我缺少的东西。正如指示here,我创建了App,获得了API密钥。然后是一个非常简单的内容页面:

<head>
  <script src="https://cdn.shopify.com/s/assets/external/app.js"></script>
  <script type="text/javascript">
    ShopifyApp.init({
      apiKey: 'my-private-api-key',
      shopOrigin: 'https://my-dev-shop.myshopify.com',
      debug: true
    });
  </script>
</head>
<body>
Private app
</body>

我将通过访问此页面重定向到我的商店屏幕。

The page you're looking for can't be found.
Try a search instead.

重定向网址

https://my-dev-shop.myshopify.com/admin/apps/my-private-api-key/ 

我缺少什么?这是我第一次体验shopify,所以也许我错过了所有理解EASDK的工作方式。我使用SSL从localhost和我的域测试了它。感谢您的任何提示。

3 个答案:

答案 0 :(得分:8)

我想更加关注嵌入式应用,并在我设法创建并安装为私有应用之前,先了解我遇到的经验和问题。

嵌入式应用程序允许修改Shopify管理员部分的外观。实际上,Shopify中没有称为“嵌入式应用程序”的特殊应用程序类型。应用创建者只需在其合作伙伴帐户中创建常规“公共”应用时启用“嵌入式应用”SDK即可。因此,如果启用此功能,则应用可以在商店的管理员中使用Embedded App SDK。

我的问题是要实现如何将嵌入式应用程序安装到商店以及如何将其设置为私有,即无需发布到App Store即可用于商店。答案是:

  • 我们需要创建一个启用了“Embedded App SDK”的常规公共应用 (使用合作伙伴帐户)
  • 我们不需要将它发布到商店(所以 除了我们之外没有人会知道它。)
  • 我们需要在商店的管理员中安装它。

最后一个操作意味着我们需要按照常规公共Shopify应用程序的描述执行所有操作,即允许应用程序使用OAuth握手访问商店。该过程描述为here

让我重复一些观点:

  1. 发送此类请求https:// {shop} .myshopify.com / admin / oauth / authorize?client_id = {api_key}&amp; scope = {scopes}&amp; redirect_uri = {redirect_uri}。 用适当的值替换{花括号中的{string}。注意{redirect_uri}必须是应用程序设置中指定的重定向URL之一,{scopes}应替换为here中允许的范围之一(我使用的是第一个范围,对我来说不重要,我不想要修改数据,我只想使用Embedded App SDK UI方法。
  2. 结果它会将您发送到example.org/some/redirect/uri?code={authorization_code}&hmac=da9d83c171400a41f8db91a950508985&timestamp=1409617544&state={nonce}&shop={hostname} (example.org/some/redirect/uri是第一个请求中指向的redirect_url),并且期望您可以正确处理此查询。
  3. “正确处理”表示将发送POST请求 https:// {shop} .myshopify.com / admin / oauth / access_token,它将包含以下字段:
    • client_id - 应用的API密钥
    • client_secret - 应用的共享密钥
    • 代码 - {authorization_code}附带查询。
  4. 我不需要任何后端内容所以我只是创建了包含所有必填字段的简单html表单并提交了它(method = POST,action = https:// {shop} .myshopify.com / admin / oauth / access_token)收到一个带访问令牌的json。

    在应用程序部分的商店管理员中,您必须看到添加应用程序的链接。点击此处后,它将尝试打开加载iframe,其中src等于应用程序的应用程序URL。此URL必须指向您的应用程序,即html,您可以在其中执行所需操作。通常人们想要使用SDK方法。 请注意可能的http / https问题

答案 1 :(得分:0)

如果您设置“应用设置”&gt;会发生此错误“嵌入式设置”已禁用(独立应用),但将您的应用用作嵌入式应用。只需将“嵌入式设置”设置为启用,您的应用就可以正常使用。

enter image description here

答案 2 :(得分:0)

我遇到了同样的问题并尝试了不同的事情......

正如this forum post上的“Shopify员工”所说,似乎可以嵌入私人应用。我找不到怎么样。

  

真正的私人应用程序不使用OAuth,也不会在Shopify管理员中列出,但您可以在合作伙伴区域创建应用程序,从不将其发布到App Store,只允许将其安装在您喜欢的任何商店。这些应用程序将列在管理员中,并具有对EASDK的完全访问权限。

这就是我所做的:

  • 创建启用了EASDK的私有应用(应用设置页面上的嵌入式设置部分)
  • 在HTTPS服务器上安装我的代码
  • 在我商店的设置页面上创建私人应用密钥

此时,我可以通过PHP API访问我店的产品和订单,让我相信我的应用程序已安装。

然后我复制了Shopify's embedded app SDK initialization doc上提供的代码。我在浏览器中打开此页面,并自动重定向到404。 该页面的网址看起来像https://name-of-my-shop.myshopify.com/admin/apps/ID_OF_MY_APP/

我也试过这个(没用):

  • 使用PHP API的方法install_url
  • 生成“安装链接”
  • 点击该链接,显示消息(我的应用名称)已被授予对Shopify数据的读/写权限。

Shopify大师的任何意见都将不胜感激

NB。似乎API发展很多,这可能是一个临时问题,但我当然希望它不是,我们可以解决这个问题!