Permata ini membangun aplikasi rel yang dapat tertanam di admin Shopify.
Pendahuluan | Persyaratan | Penggunaan | Dokumentasi | Berkontribusi | Lisensi
Permata ini mencakup mesin rel, generator, modul, dan mixin yang membantu membuat aplikasi rel yang bekerja dengan API Shopify. Mesin Shopify App Rails menyediakan semua kode yang diperlukan untuk mengimplementasikan OAuth dengan Shopify. Generator Aplikasi Shopify default membangun aplikasi yang dapat tertanam di Admin Shopify dan mengamankannya dengan token sesi.
Untuk menjadi pengembang aplikasi Shopify, Anda akan memerlukan akun Shopify Partners. Jelajahi dokumen Shopify Dev untuk mempelajari lebih lanjut tentang membangun aplikasi Shopify.
Permata ini mengharuskan Anda memiliki kredensial berikut:
rails new my_shopify_app
bundle add shopify_app
dotenv-rails
. Buat file .env
di root aplikasi Rails Anda untuk menentukan host lengkap dan kredensial API Shopify: 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
Instal aplikasi dengan mengunjungi URL server (misalnya http: // localhost: 3000) dan menentukan subdomain toko tempat Anda ingin dipasang.
Setelah aplikasi diinstal, Anda dialihkan ke aplikasi tertanam.
Aplikasi ini mengimplementasikan OAuth 2.0 dengan Shopify untuk mengotentikasi permintaan yang dibuat untuk Shopify API. Secara default, aplikasi ini dikonfigurasi untuk menggunakan token sesi untuk mengotentikasi pedagang saat tertanam di admin Shopify.
Lihat generator untuk daftar lengkap generator yang tersedia untuk aplikasi Shopify.
Anda dapat menemukan dokumentasi tentang penggunaan permata, konsep, mixin, instalasi, dan banyak lagi di /docs
.
QuickStart
Pemecahan masalah
Perbaikan
Aplikasi Shopify
Memasang Mesin Rail App Shopify menyediakan rute berikut. Rute ini dikonfigurasi untuk membantu menginstal aplikasi Anda di toko -toko dan mengimplementasikan OAuth.
Kata kerja | Rute | Tindakan |
---|---|---|
GET | /login | Login |
POST | /login | Login |
GET | /auth/shopify/callback | OAuth Redirect Uri |
GET | /logout | Logout |
POST | /webhooks/:type | Webhook Callback |
Rute ini dapat dikonfigurasi. Lihat dokumentasi mesin yang lebih rinci untuk mempelajari bagaimana Anda dapat menyesuaikan URL login atau memasang mesin Shopify App Rails di rute bersarang.
Untuk mempelajari lebih lanjut tentang bagaimana permata ini mengotentikasi dengan Shopify, lihat otentikasi .
Tip
Jika Anda sedang membangun aplikasi tertanam, kami sangat menyarankan untuk menggunakan instalasi yang dikelola Shopify dengan Token Exchange alih -alih aliran hibah kode otorisasi warisan.
Kami telah memperkenalkan strategi instalasi dan otorisasi baru untuk aplikasi tertanam yang menghilangkan pengalihan yang sebelumnya diperlukan. Ini menggantikan aliran hibah kode instalasi dan otorisasi yang ada.
Ini dicapai dengan menggunakan instalasi yang dikelola Shopify untuk menangani instalasi aplikasi otomatis dan pembaruan ruang lingkup, sambil menggunakan Token Exchange untuk mengambil token akses untuk akses API yang diautentikasi.
Catatan
Pastikan Anda tidak memiliki use_legacy_install_flow = true
di file konfigurasi shopify.app.toml
Anda. Jika use_legacy_install_flow
benar, Shopify tidak akan mengelola proses instalasi untuk aplikasi Anda. Anda harus menghapus baris use_legacy_install_flow
dari file konfigurasi shopify.app.toml
Anda atau mengaturnya ke 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
Anda sudah benar. Jika aplikasi Anda memiliki pengontrol yang mencakup ShopifyApp::EnsureInstalled
, mereka sekarang juga akan menyertakan masalah ShopifyApp::EmbeddedApp
, yang menetapkan layout 'embedded_app'
untuk pengontrol saat ini secara default. Dalam kasus di mana pengontrol awalnya mencari file tata letak lain, ini dapat menyebabkan perilaku yang tidak terduga. Lihat dokumentasi EmbeddedApp
Concern untuk informasi lebih lanjut tentang efek dari masalah ini dan bagaimana menonaktifkan perubahan tata letak jika diperlukan. API Shopify diversi. Dengan Aplikasi Shopify v1.11.0
, permata API Shopify yang disertakan memungkinkan pengembang untuk menentukan dan memperbarui versi API Shopify yang mereka inginkan untuk digunakan aplikasi atau layanan mereka. Permata API Shopify juga memunculkan peringatan ke aplikasi Rails tentang titik akhir yang sudah usang, bidang graphql dan banyak lagi.
Lihat Readme Permata API Shopify untuk informasi lebih lanjut.