如何使用ScriptTags开发用于shopify的rails应用程序

How to develop rails app for shopify with ScriptTags

本文关键字:rails 应用程序 shopify 用于 何使用 ScriptTags 开发      更新时间:2023-09-26

我在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调用函数放在哪里?

这可能会有所帮助。

Shopify Rails app

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

ShopifyAPI::Base.site = token

,然后使用以下方法安装脚本:

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

你完成了!

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

在位于应用程序>控制器中的 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 文件路径。

然后在位于配置>初始值设定项中的 omniauth.rb 文件中确保将write_script_tags添加到范围中,即

:scope => 'write_script_tags',

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