Dieses Edelstein baut Rails -Anwendungen auf, die in den Shopify -Administrator eingebettet werden können.
Einführung | Anforderungen | Verwendung | Dokumentation | Beitragen | Lizenz
Dieses Juwel umfasst einen Schienenmotor, Generatoren, Module und Mixins, mit denen Rails -Anwendungen erstellt werden, die mit Shopify -APIs arbeiten. Die Shopify App Rails Engine bietet den gesamten Code zur Implementierung von OAuth mit Shopify. Der Standard -Shopify -App -Generator erstellt eine App, die in den Shopify -Administrator eingebettet und mit Sitzungspunkten sichert.
Um ein Shopify -App -Entwickler zu werden, benötigen Sie ein Shopify Partners -Konto. Entdecken Sie die Shopify Dev Docs, um mehr über das Aufbau von Shopify -Apps zu erfahren.
Dieses Juwel erfordert, dass Sie die folgenden Anmeldeinformationen haben:
rails new my_shopify_app
bundle add shopify_app
dotenv-rails
JUM empfohlen. Erstellen Sie eine .env
-Datei im Stammpunkt Ihrer Rails -App, um den vollständigen Host- und Shopify -API -Anmeldeinformationen anzugeben: 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
Installieren Sie die App, indem Sie die URL des Servers (z. B. http: // localhost: 3000) besuchen und die Subdomäne des Shops angeben, in die sie installiert werden soll.
Nach der Installation der App werden Sie in die eingebettete App weitergeleitet.
Diese App implementiert OAuth 2.0 mit Shopify, um Anforderungen an Shopify -APIs zu authentifizieren. Standardmäßig ist diese App so konfiguriert, dass sie Session Tokens verwendet, um Händler zu authentifizieren, wenn sie in den Shopify -Administrator eingebettet sind.
Generatoren finden Sie in einer vollständigen Liste der Generatoren, die für die Shopify -App zur Verfügung stehen.
Sie finden Dokumentation zu Gem -Nutzung, Konzepten, Mixins, Installation und mehr in /docs
.
QuickStart
Fehlerbehebung
Upgrade
Shopify App
Die Montage des Shopify App Rails Engine bietet die folgenden Strecken. Diese Routen sind konfiguriert, um Ihre Anwendung in den Geschäften zu installieren und OAuth zu implementieren.
Verb | Route | Aktion |
---|---|---|
GET | /login | Login |
POST | /login | Login |
GET | /auth/shopify/callback | OAuth Uri weiterleiten |
GET | /logout | Abmelden |
POST | /webhooks/:type | Webhook -Rückruf |
Diese Routen sind konfigurierbar. Weitere Informationen finden Sie in der detaillierteren Motordokumentation , um zu erfahren, wie Sie die Anmelde -URL anpassen oder den Shopify App Rails -Motor auf verschachtelten Strecken montieren können.
Weitere Informationen darüber, wie sich dieses Edelstein mit Shopify authentifiziert, siehe Authentifizierung .
Tipp
Wenn Sie eine eingebettete App erstellen, empfehlen wir dringend, die Shopify Managed Installation mit Token Exchange anstelle des Legacy Authorization Code Grant Flow zu verwenden.
Wir haben eine neue Installations- und Autorisierungsstrategie für eingebettete Apps eingeführt, die die zuvor erforderlichen Umleitungen beseitigt. Es ersetzt den vorhandenen Flow für Installations- und Autorisierungscode Grant.
Dies wird durch die Verwendung von Shopify Managed Installation zur Behandlung automatischer App -Installationen und Umfangsaktualisierungen erreicht und gleichzeitig Token Exchange verwendet, um ein Zugriffstoken für den authentifizierten API -Zugriff abzurufen.
Notiz
Stellen Sie sicher use_legacy_install_flow = true
nicht in Ihrer shopify.app.toml
-Datei verwendet werden. Wenn use_legacy_install_flow
TRUE ist, verwaltet Shopify den Installationsprozess für Ihre App nicht. Sie sollten die Zeile use_legacy_install_flow
von Ihrer Konfigurationsdatei shopify.app.toml
entfernen oder auf false
festlegen.
# 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
-Layout korrekt ist. Wenn Ihre App über einen Controller verfügt, der ShopifyApp::EnsureInstalled
enthält, enthält sie nun auch das ShopifyApp::EmbeddedApp
, das standardmäßig layout 'embedded_app'
für den aktuellen Controller festlegt. In Fällen, in denen der Controller ursprünglich nach einer anderen Layoutdatei gesucht hat, kann dies zu unerwarteten Verhaltensweisen führen. Weitere Informationen zu den Auswirkungen dieses Anliegens und der Deaktivierung der Layoutänderung finden Sie bei Bedarf weitere Informationen zu den Auswirkungen EmbeddedApp
Problems. Die API von Shopify ist versioniert. Mit Shopify App v1.11.0
ermöglicht dem Shopify -API -Gem die Entwickler die mit der Shopify -API -Version, von denen sie ihre App oder ihren Dienst verwenden möchten, angeben und aktualisieren. Das Shopify -API -Gem wird auch Warnungen zu Rails -Apps über veraltete Endpunkte, GraphQL -Felder und vieles mehr übertreffen.
Weitere Informationen finden Sie im Shopify API Gem Readme.