Этот драгоценный камень строит приложения Rails, которые могут быть встроены в администратор Shopify.
Введение | Требования | Использование | Документация | Вклад | Лицензия
Этот драгоценный камень включает в себя двигатель Rails, генераторы, модули и микшины, которые помогают создавать приложения Rails, которые работают с API Shopify. Двигатель Shopify App Rails предоставляет весь код, необходимый для реализации OAuth с помощью Shopify. Генератор приложений Shockify по умолчанию создает приложение, которое можно встроить в администратор Shopify и закреплять его токенами сеанса.
Чтобы стать разработчиком приложений Shopify, вам понадобится учетная запись Shopify Partners. Исследуйте Dev Dev Shopify, чтобы узнать больше о строительстве приложений Shopify.
Этот драгоценный камень требует, чтобы у вас были следующие учетные данные:
rails new my_shopify_app
bundle add shopify_app
dotenv-rails
. Создайте файл .env
в корне приложения вашего Rails, чтобы указать полный хост и 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) и указав субдомен магазина, где вы хотите, чтобы оно было установлено.
После установки приложения вы перенаправлены на встроенное приложение.
Это приложение реализует OAuth 2.0 с помощью Shopify для аутентификации запросов, сделанных для Shopify API. По умолчанию это приложение настроено для использования токенов сеанса для аутентификации торговцев при встроении в администрацию Shopify.
См. Генераторы для полного списка генераторов, доступных для приложения Shopify.
Вы можете найти документацию об использовании драгоценных камней, концепциях, микшинах, установке и многом другом в /docs
.
QuickStart
Поиск неисправностей
Обновление
Shopify App
Установление двигателя Shopify App Rails предоставляет следующие маршруты. Эти маршруты настроены, чтобы помочь установить ваше приложение в магазинах и реализовать OAuth.
Глагол | Маршрут | Действие |
---|---|---|
GET | /login | Авторизоваться |
POST | /login | Авторизоваться |
GET | /auth/shopify/callback | OAuth перенаправляет URI |
GET | /logout | Выход |
POST | /webhooks/:type | Webhook обратный вызов |
Эти маршруты настраиваются. См. Более подробную документацию двигателя , чтобы узнать, как вы можете настроить URL -адрес входа или установить двигатель Shopify App Rails на вложенных маршрутах.
Чтобы узнать больше о том, как этот драгоценный камень аутентифицирует с Shopify, см. Аутентификацию .
Кончик
Если вы создаете встроенное приложение, мы настоятельно рекомендуем использовать управляемую установку Shopify с помощью обмена токенами вместо потока гранта кода унаследованного авторизации.
Мы представили новую стратегию установки и авторизации для встроенных приложений , которая устраняет перенаправления, которые были ранее необходимыми. Заменяет существующий поток гранта кода установки и авторизации.
Это достигается за счет использования управляемой установки Shopify для обработки автоматических установок приложений и обновлений областей при этом, используя обмен токенами для получения токена доступа для доступа API.
Примечание
Убедитесь, что у вас нет use_legacy_install_flow = true
в вашем файле конфигурации shopify.app.toml
. Если use_legacy_install_flow
верно, Shopify не будет управлять процессом установки для вашего приложения. Вам следует удалить линию use_legacy_install_flow
из вашего файла конфигурации shopify.app.toml
или установить ее в 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
, которая по умолчанию устанавливает layout 'embedded_app'
для текущего контроллера. В тех случаях, когда контроллер изначально искал другой файл макета, это может вызвать неожиданное поведение. См. Документацию EmbeddedApp
Constring для получения дополнительной информации о влиянии этой проблемы и о том, как отключить изменение макета, если это необходимо. API Shopify версирован. С помощью приложения Shopify v1.11.0
включенный GEM Shopify API позволяет разработчикам указать и обновлять версию API Shopify, которую они хотят, чтобы их приложение или услуга использовали. GEM Shopify API также выдвигает предупреждения для приложений Rails о устаревших конечных точках, полях GraphQL и многом другом.
См. Shopify API Gem Readme для получения дополнительной информации.