該寶石構建了可以嵌入Shopify管理員的Rails應用程序。
簡介|要求|用法|文檔|貢獻|執照
該寶石包括鐵軌引擎,發電機,模塊和混合物,可幫助創建與Shopify API一起使用的導軌應用程序。 Shopify App Rails引擎提供了與Shopify實施OAuth所需的所有代碼。默認的Shopify App Generator構建了一個可以嵌入Shopify Admin並使用Session令牌確保的應用程序。
要成為Shopify應用程序開發人員,您將需要一個Shopify Partners帳戶。探索Shopify開發文檔,以了解有關構建Shopify應用程序的更多信息。
該寶石要求您具有以下憑據:
rails new my_shopify_app
bundle add shopify_app
dotenv-rails
Gem。在您的Rails應用程序的根部創建.env
文件,以指定完整的主機和Shopify API憑據: HOST=http://localhost:3000
SHOPIFY_API_KEY= < Your Shopify API key >
SHOPIFY_API_SECRET= < Your Shopify API secret >
rails generate shopify_app
rails db:migrate
rails server
通過訪問服務器的URL來安裝應用程序(例如http:// localhost:3000),並指定您希望將其安裝到的商店的子域。
安裝應用程序後,您將您重定向到嵌入式應用程序。
該應用程序通過Shopify實施Oauth 2.0,以驗證對Shopify API提出的請求。默認情況下,此應用程序被配置為使用Session代幣在Shopify Admin中嵌入商人身份驗證商人。
有關可用於Shopify應用程序的發電機的完整列表,請參見發電機。
您可以找到有關GEM使用,概念,混音,安裝等/docs
的文檔。
Quickstart
故障排除
升級
Shopify應用程序
安裝Shopify App Rails發動機提供以下路線。這些路線被配置為幫助將您的應用程序安裝在商店並實施OAuth。
動詞 | 路線 | 行動 |
---|---|---|
GET | /login | 登入 |
POST | /login | 登入 |
GET | /auth/shopify/callback | Oauth重定向URI |
GET | /logout | 註銷 |
POST | /webhooks/:type | Webhook回調 |
這些路線是可配置的。請參閱更詳細的引擎文檔,以了解如何自定義登錄網址或在嵌套路線上安裝Shopify App Rails引擎。
要了解有關該寶石如何使用Shopify進行認證的更多信息,請參閱身份驗證。
提示
如果您要構建一個嵌入式應用程序,我們強烈建議將Shopify託管安裝與代幣交易所使用,而不是傳統的授權代碼贈款流。
我們為嵌入式應用程序引入了一種新的安裝和授權策略,以消除以前必要的重定向。它取代了現有的安裝和授權代碼授予流。
這是通過使用Shopify託管安裝來處理自動應用程序安裝和範圍更新的,同時利用令牌交換來檢索訪問令牌以進行身份驗證的API訪問。
筆記
確保您在shopify.app.toml
配置文件中沒有use_legacy_install_flow = true
。如果use_legacy_install_flow
為真,則Shopify將無法管理應用程序的安裝過程。您應該從shopify.app.toml
配置文件中刪除use_legacy_install_flow
LINE或將其設置為false
。
# config/initializers/shopify_app.rb
ShopifyApp . configure do | config |
#.....
config . embedded_app = true
config . new_embedded_auth_strategy = true
# If your app is configured to use online sessions, you can enable session expiry date check so a new access token
# is fetched automatically when the session expires.
# See expiry date check docs: https://github.com/Shopify/shopify_app/blob/main/docs/shopify_app/sessions.md#expiry-date
config . check_session_expiry_date = true
...
end
embedded_app
佈局正確。如果您的應用程序具有任何控制器,其中包括ShopifyApp::EnsureInstalled
,則現在還將包括ShopifyApp::EmbeddedApp
Confort,默認情況下為當前控制器設置了layout 'embedded_app'
。如果控制器最初尋找另一個佈局文件,則可能會導致意外行為。有關此關注的效果以及如何在需要時禁用佈局更改的更多信息,請參見EmbeddedApp
Confort的文檔。Shopify的API已版本。借助Shopify App v1.11.0
,隨附的Shopify API GEM允許開發人員指定並更新他們想要使用的應用程序或服務的Shopify API版本。 Shopify API寶石還向Rails Apps表面有關棄用端點,GraphQL字段等的警告。
有關更多信息,請參見Shopify API Gem Readme。