javascript-Shopify应用-在Ruby on Rails应用程序中使用脚本标签

我正在尝试使自己熟悉使用脚本标签的概念.我正在制作ruby on rails应用程序,该应用程序的作用很简单,例如当客户访问页面时发出警报“嗨”.我正在本地服务器上测试此公共应用程序,并且安装了shopify_app gem.该应用程序已通过身份验证,我可以访问商店的数据.我查看了有关使用脚本标签的Shopify API文档,并查看了Shopify在GitHub上的Shopify嵌入式应用示例.该文档详细介绍了脚本标记的属性,并提供了定义了其属性的脚本标记示例,但没有说明如何将脚本标记放置在应用程序中,也没有说明如何配置环境以使js文件位于脚本标记将通过.

我发现添加了脚本标签的js文件仅在js文件在线托管时才有效,因此我已将js文件上传到了Google驱动器.我在HomeController(应用程序的默认页面)的index动作中具有script标记的代码.这是我正在使用的代码:

def index
  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://drive.google.com/..."
  )
end

我认为问题可能与request.env有关.该响应未作为request.env [omniauth.auth]读取,并且我认为可能需要响应返回为有效脚本脚本才能通过.

我上面尝试的方法来自本主题中给出的第二个答案:How to develop rails app for shopify with ScriptTags.

建议使用此代码的第一个答案:
ShopifyAPI :: Base.site =令牌

s = ShopifyAPI :: ScriptTag.create(:events =>“ onl oad”,:src =>“您的JavaScript网址”)

但是,它并没有说明将两行代码放在Rails应用程序中的什么位置.我尝试将第二行放在我的rails应用程序的js文件中,但是没有用.

我不知道是否因为在本地服务器上运行该应用程序而遇到问题,或者我的应用程序配置中是否缺少某些内容.

如果有人能指出正确的方向,我将不胜感激.

解决方法:

尝试在config / initializers / shopify_app.rb中放入类似内容

ShopifyApp.configure do |config|
  config.api_key = "xxx-xxxx-xxx-xxx"
  config.secret = "xxx-xxxx-xxx-xxx"
  config.scope = "read_orders, read_products"
  config.embedded_app = true
  config.scripttags = [
  {event:'onload', src: 'https://yourdomain.herokuapp.com/javascripts/yourjs.js'}
  ]
end

是的,您正确地需要将要包含的js文件公开发布的js文件-如果您使用本地主机进行开发,请查看grok.

请确保在与Shopify API交互时确保回调使用SSL(例如,在Shopify应用程序设置中将https://localhost/配置为回调设置),以确保自己的回调.我遇到了使用自签名SSL证书在本地配置Thin作为Web服务器的麻烦.

通过正确的设置,您应该能够调试为什么响应未能通过omniauth检查.

我是Shopify API的新手,但不是Rails.他们的文档还有很多不足之处.

先生,祝你好运,

上一篇:带有XPAth 2.0和Java表达式的XSLT


下一篇:Saxon in Java:指定SAX Parser