とーますメモ

Ruby on Rails / Goなどの学習メモ

【ShopifyApp × Rails】Embedded Appsの設定について

RailsでShopifyアプリを作成する際は、
公式から配布されているgemである「shopify_app」を使用して
アプリを作成するのが普通だと思う。

github.com

このgemを介して、アプリの初期設定を行うと
現時点(2017/12/15)では
アプリはデフォルトで「Embedded apps」として設定される。

Shopify Open Source > shopify_app

「Embedded apps」(直訳:埋め込みアプリ)とは
要はShopifyがUXのために、アプリがあたかもShopifyの一部として動作しているかのように
見せるために、Shopify内でiframeを介し
外部サーバに存在するアプリを使用できるようにする機能である。(だよね?)

デフォルトの初期設定は以下のように行う。

$ rails generate shopify_app --api_key <your_api_key> --secret <your_app_secret>

※api_keyとapp_secretはShopifyページ内で「Create app」を行うと
自動で作成され、設定画面で確認できる。

埋め込みアプリ作成するなら、このままで良いが
外部サーバに飛ばして、アプリを使う方法を取りたい場合は、
このEmbedded設定をオフにしないといけない。

その場合は、上記の加えて以下のようにすれば良いっぽい。

$ rails generate shopify_app --api_key <your_api_key> --secret <your_app_secret> --embedded false

しかしこれだけでは、駄目だった。。
しかも、ググってもそれらしい回答はない・・(自分の探し方が悪いのかもだが。)
でもShopifyアプリの設定画面を見たらあった。。。

f:id:Thoames1212:20171216141238p:plain

この画面上の「Embed in Shopify admin」の項目を「disabled」にすればよかったのだ。
これで、アプリのリンクをクリックすれば、設定した外部サーバに遷移するようになる。

Shopifyは、この内容をちゃんとドキュメントに書くべき。
ここまでくるのに結構時間かかった。

※最初に「-- embedded false」を設定せずに
初期設定で生成されるshopify_app.rbの中の

config.embedded_app = true

をfalseに変更したとしてもembedをオフにすることはできなかった。