Shopify 应用程序 - 在 Rails 应用程序上使用带有 Ruby 的脚本标签
Shopify App - Using Script Tags with Ruby on Rails Application
我正在尝试熟悉使用脚本标签的概念。我正在 rails 应用程序上制作一个 ruby,当客户访问页面时,它会做一些简单的事情,比如提醒 "Hi"。我正在本地服务器上测试此 public 应用程序,并且安装了 shopify_app gem。该应用程序已通过身份验证,我可以访问商店的数据。我查看了有关使用脚本标签的 Shopify API 文档,并查看了 Shopify 在 GitHub 上提供的 Shopify 嵌入式应用程序示例。该文档详细介绍了脚本标签的属性,并给出了定义了属性的脚本标签示例,但没有说明将脚本标签放置在应用程序中的什么位置,也没有说明如何配置环境以便 js 文件在应用程序中。脚本标签将通过。
我发现添加了脚本标签的 js 文件只有在线托管时才有效,所以我将 js 文件上传到 google 驱动器。我的 HomeController(应用程序的默认页面)的索引操作中有脚本标记的代码。这是我正在使用的代码:
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],我相信脚本标记可能需要返回有效的响应才能通过。
我上面尝试的方法来自本题给出的第2个答案:How to develop rails app for shopify with ScriptTags.
第一个答案建议使用此代码:
ShopifyAPI::Base.site = 代币
s = ShopifyAPI::ScriptTag.create(:events => "onload",:src => "your javascript url")
但是,它没有说明将这两行代码放在 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 文件 - 如果您使用 localhost 进行开发,请查看 grok。
请确保您的回调在与 Shopify API 交互时使用 SSL(即在 Shopify 应用设置中使用 https://localhost/ 配置您的应用作为回调设置)。我遇到了使用自签名 SSL 证书在本地将 thin 配置为 Web 服务器的麻烦。
通过正确的设置,您应该能够调试响应未通过 omniauth 检查的原因。
我是 Shopify API(s) 的新手,但不是 Rails。他们的文档还有很多不足之处。
祝你好运,先生,
我正在尝试熟悉使用脚本标签的概念。我正在 rails 应用程序上制作一个 ruby,当客户访问页面时,它会做一些简单的事情,比如提醒 "Hi"。我正在本地服务器上测试此 public 应用程序,并且安装了 shopify_app gem。该应用程序已通过身份验证,我可以访问商店的数据。我查看了有关使用脚本标签的 Shopify API 文档,并查看了 Shopify 在 GitHub 上提供的 Shopify 嵌入式应用程序示例。该文档详细介绍了脚本标签的属性,并给出了定义了属性的脚本标签示例,但没有说明将脚本标签放置在应用程序中的什么位置,也没有说明如何配置环境以便 js 文件在应用程序中。脚本标签将通过。
我发现添加了脚本标签的 js 文件只有在线托管时才有效,所以我将 js 文件上传到 google 驱动器。我的 HomeController(应用程序的默认页面)的索引操作中有脚本标记的代码。这是我正在使用的代码:
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],我相信脚本标记可能需要返回有效的响应才能通过。
我上面尝试的方法来自本题给出的第2个答案:How to develop rails app for shopify with ScriptTags.
第一个答案建议使用此代码: ShopifyAPI::Base.site = 代币
s = ShopifyAPI::ScriptTag.create(:events => "onload",:src => "your javascript url")
但是,它没有说明将这两行代码放在 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 文件 - 如果您使用 localhost 进行开发,请查看 grok。
请确保您的回调在与 Shopify API 交互时使用 SSL(即在 Shopify 应用设置中使用 https://localhost/ 配置您的应用作为回调设置)。我遇到了使用自签名 SSL 证书在本地将 thin 配置为 Web 服务器的麻烦。
通过正确的设置,您应该能够调试响应未通过 omniauth 检查的原因。
我是 Shopify API(s) 的新手,但不是 Rails。他们的文档还有很多不足之处。
祝你好运,先生,