2017-06-10 4 views
1

私はレール付きの宝石をshopify_app使っています。私はshopify_appを入れ子にしたルートから操作します。例:/ shopify_app/loginまたは '/ shopify_app/auth/shopify/callback'の場合 shopify_app gemのエンジンルートを変更してください

私は宝石のマニュアルの解決策を試してみましたが、私のroutes.rbをファイルにこれらの行を置く:

mount ShopifyApp::Engine, at: 'shopify_app' 
get '/shopify_app' => 'settings#index' 

Routes for shopify_app root Routes for shopify_app engine

しかし、それはこのように動作しませんでした。だから、私は周りを探索し、omniauthイニシャライザでいくつかの変更を行うことで動作させるための解決策を見つけました。ここで

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :shopify, ShopifyApp.configuration.api_key, ShopifyApp.configuration.secret, scope: ShopifyApp.configuration.scope, callback_path: '/shopify_app/auth/shopify/callback' 
end 

は、アプリの設定です:アプリのSDK組み込み

https://salebait.com/settings

ホワイトリストリダイレクトURL::私はインストール時にhttps://salebait.com/shopify_app/auth/shopify/callback

今問題がある

アプリのURLを有効に私のアプリは最初に私のウェブサイトのホームページ(https://salebait.com)にリダイレクトされます代わりにストア管理者のhttps://salebait.com/settingsページを開く必要があります。ブラウザを閉じたり店舗からログアウトして再びアプリに戻ったりするとhttps://salebait.com/loginになります。これは有効なページではありません。すべてのアプリルートが/ shopify_app /内にラップされているため、アプリのログインURLはhttps://salebait.com/shopify_app/loginである必要があります。 次に、手動でアプリのログインURLをヒットして機能させる必要があります。

私のアプリのルートがスムーズに機能するようにいくつかの解決策を提案してください。

編集:ここでは...別のブラウザでアプリを開くしようとした場合のAppは、間違ったログインページにリダイレクトするためのエラー画面です: enter image description here

感謝。

+0

私にとってはうまくいった。あなたが提供したURLに基​​づいて、アプリケーションが正しくインストールされ、リダイレクトされました。実際には存在しない資産が存在すると仮定すると、アプリケーションにエラーがあります。そこにいくつかの防御的なコーディングがあり、あなたはレースを離れているかもしれません。 Shop_API :: Asset.find( 'snippets/sale_bait_common_elems.liquid'、:params => {:theme_id => shop.active_theme}) –

+0

こんにちは@DavidLazar、アプリをインストールしたときに、あなたのアプリの設定を見せてくれましたか?それともhttps://salebait.comに行きましたか? ログアウトしてからもう一度お試しください。 – shalini

+0

私が言及したように。流れは大丈夫だった。発生した唯一のエラーは、あなたが探しているリソースが存在することをアプリケーションで行ったという仮定でした。そうでないときは、404の例外をキャッチしていなかったので事が爆発しました。 –

答えて

1

誰かが解決策を探しているなら、ここにあります: "/ shopify_app"名前空間の下にshopify_appエンジンをマウントしていました。それは宝石のデフォルトのネームスペースなので、デフォルトルートを上書きしません。

私はshopify_app名前空間を "/ app"に変更しました。これはスムーズに機能しました。

mount ShopifyApp::Engine, at: 'app' 
get '/app' => 'settings#index' 

また、Omniauthビルダーとアプリの設定でパスが変更されました。

Rails.application.config.middleware.use OmniAuth::Builder do 
    provider :shopify, ShopifyApp.configuration.api_key, ShopifyApp.configuration.secret, scope: ShopifyApp.configuration.scope, callback_path: '/app/auth/shopify/callback' 
end 
関連する問題