3

我在 Heroku 中部署了一个 Shopify 应用程序,在 Rails 中开发。我需要从任何 shopify 商店的前端调用一个 javascript 函数。我读过这篇文章(http://www.shopify.com/technology/3033852-shopify-api-update-scripttags-javascript-insertion),但我不明白......

我必须把这段代码放在哪里:

HTTP POST http://their-shop.myshopify.com/admin/scripttags

  <?xml version="1.0" encoding="UTF-8"?>
  <script-tag>
    <src>http://example.com/your-awesome-script.js</src>
    <event>onload</event>
  </script-tag>

src 标签应该是什么(对于我部署的 rails 应用程序),我应该把 javascript 调用函数放在哪里?

4

2 回答 2

5

这可能会有所帮助。

Shopify Rails 应用程序

您只需对用户进行身份验证,然后您需要获取从 Shopify 生成的令牌并将其保存在您的数据库中。稍后只做:

ShopifyAPI::Base.site = token

然后使用以下命令安装脚本:

s = ShopifyAPI::ScriptTag.create(:events => "onload",:src => "your javascript url")

你就完成了!

于 2012-08-13T15:03:49.153 回答
2

这是我为使其正常工作所做的:

在位于 app > controllers 的 sessions_controller.rb 文件中

在这之后

def show
  if response = request.env['omniauth.auth']
    sess = ShopifyAPI::Session.new(params[:shop], response[:credentials][:token])
    session[:shopify] = sess

我添加了

ShopifyAPI::Base.activate_session(sess)
ShopifyAPI::ScriptTag.create(:event => "onload", :src => "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js")

您需要将https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js上面的代码中的代码替换为您的绝对 js 文件路径。

然后在位于 config > initializers 的 omniauth.rb 文件中,确保添加write_script_tags到范围,即

:scope => 'write_script_tags',

并且您可能还需要重新启动 Rails 服务器并重新安装应用程序,以便授予这些权限。这应该够了吧!

于 2012-11-07T07:44:00.393 回答