2016-08-17 136 views
1

我想讓自己熟悉使用腳本標記的概念。我在Rails應用程序上做了一個ruby,當客戶訪問一個頁面時,它會執行一些簡單的警告「嗨」。我在本地服務器上測試這個公共應用程序,並安裝了shopify_app gem。該應用程序已通過身份驗證,我可以訪問商店的數據。我已經查看了使用腳本標籤的Shopify API文檔,並且看過Shopify在GitHub上的Shopify嵌入式應用示例。該文檔詳細介紹了腳本標記的屬性,並給出了腳本標記的示例,其中定義了它們的屬性,但沒有說明將腳本標記放置在應用程序中的位置,或者如何配置環境以使js文件位於腳本標籤將通過。Shopify應用程序 - 在Ruby on Rails上使用腳本標記應用程序

我發現用腳本標記添加的js文件只有在js文件在線託管時纔會有效,所以我已將js文件上傳到Google Drive。我在HomeController的索引操作(應用程序的默認頁面)中有腳本標記的代碼。這是我使用的代碼:我認爲這個問題可以綁在request.env

高清指數

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 [omniauth.auth]讀取,我相信腳本標記可能需要回復爲有效的響應。

我上面嘗試的方法是從本主題中給出的第二個答案:How to develop rails app for shopify with ScriptTags

第一個答案使用此代碼建議: ShopifyAPI :: Base.site =令牌

S = ShopifyAPI :: ScriptTag.create(:事件=> 「的onload」:SRC =>「你的JavaScript網址「)

但是,它並未說明將兩行代碼放在rails應用程序中的位置。我嘗試將第二行放入我的rails應用程序的js文件中,但它不起作用。

我不知道我是否遇到問題,因爲我在本地服務器上運行應用程序,或者如果我的應用程序配置中缺少某些內容。

如果有人能指出我正確的方向,我會很感激。

回答

0

嘗試把這樣的事情在配置/初始化/ 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://shopifydocumentationsucks.herokuapp.com/javascripts/fuckyou.js'} 
    ] 
end 

是的,你是正確的,你需要的JS文件要包括你的scripttag公開可用的 - 如果你是使用本地主機進行開發研究grok。

確保您的回調在與Shopify API交互時使用SSL(即將您的應用配置爲https://localhost/作爲Shopify應用設置中的回調設置)。我經歷了使用自簽名SSL證書在本地配置瘦Web服務器的麻煩。

通過適當的設置,您應該能夠調試響應失敗omniauth檢查的原因。

我是Shopify API的新手,但不是Rails。他們的文檔留下了許多不足之處。

祝你好運先生,

+0

我沒有檢查這個職位在一段時間,因爲它去多長時間沒有回覆,但我終於想通了,你的答案是什麼我做得到它工作。我必須將腳本文件的代碼放置在config/initializers/shopify_app.rb中。只要確認這一點,以防其他人遇到同樣的問題。謝謝。 – OneCaseTwoCase

相關問題