我正在尝试使自己熟悉使用脚本标签的概念.我正在制作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.他们的文档还有很多不足之处.
先生,祝你好运,