Shopifyアプリを作成しています
アプリのAPIはRESTで作成しておりますがアプリのAPIのエンドポイントはどのようになりますか?
https://test-ec.myshopify.com/admin/apps/test_app/post
このようにリクエストを送ったところうまくいきません
どなたか詳しい方いましたらよろしくお願い致します!
AI-generated summary
ShopifyアプリのAPIエンドポイント設定が主題だったが、途中で実際の問題は認証周りにある可能性が高いと整理された。
・当初は「/admin/apps/test_app/post」のようなURLへのPOSTがうまくいかない点が質問された。
・回答では、App Proxy(Shopifyからアプリ側URLへ中継する仕組み)を使う場合、Shopify側のURLは設定した Sub path prefix / Sub path に従い、実際にはアプリ側の Proxy URL 配下へ転送される、という整理が示された。
その後、直接アプリURLへ送ると「422 ActionController::InvalidAuthenticityToken」が出ることが共有された。
これはエンドポイントそのものより、埋め込みアプリの認証・トークン処理の問題の可能性が高いと指摘されている。
想定原因としては、ストア側リクエストのトークン設定不備、サーバー側認証の不備、APIキーの誤りなどが挙げられた。App Bridgeを使っているならJWTトークン取得を検討すべき、との助言もあった。
結論として、このスレッドは一旦クローズ。エンドポイント説明は得られたが、埋め込みアプリへストアフロントからPOSTする認証課題は未解決で、別スレッドで継続予定。
Shopifyアプリののエンドポイントにリクエストを送ればいいのではないでしょうか?
【参考 : Display dynamic store data with app proxies】
Shopify のストアのURL = https://test-ec.myshopify.com
アプリケーションのURL = https://my-app.com
だとします。この場合、単にShoipfy側から https://my-app.com にリクエストを送ることが可能だと思います。
RikutoNakamuraさんがやろうとしているのはApp proxyを使ったやり方だと思いますが、この場合はエンドポイントは以下の様になるかと思います。
- App proxy の設定 (RikutoNakamuraさんの提示したURLを参考に)
- Sub path prefix : apps
- Sub path : test_app
- Proxy URL : https://my-app.com/app_proxy
ここで、Shopify側から以下の様にリクエストを送信します。
https://test-ec.myshopify.com/admin/apps/test_app/post
このリクエストはApp proxyの設定に従い、以下のエンドポイントにリクエストが飛ぶはずです。
ご回答ありがとうございます!
直接直接アプリのURLにリクエストを送ると422のActionController::InvalidAuthenticityTokenエラーが発生します
ちなみにアプリは埋め込みアプリで、こちらのエラーはshopifyの認証周りが関係しているのかと考えております。
やりたいこととしては埋め込みアプリにストアフロント(テーマの画面)からpostリクエストを送りたいです。
何かアドバイスいただけると幸いです。
それはエンドポイントの問題ではなく、認証周りの問題かもしれませんね。
考えられる問題としては
- ストア側からのリクエストでtokenを正しく設定できていない
- アプリケーションサーバー側での認証が正しく行えていない
- tokenを生成するためのapi keyが正しくない
とかがあると思います。
私は Rails で開発したことがないのでわかりませんが、埋め込みアプリに App Bridge を使用しているのであれば、App Bridge から JWT token を受け取ってリクエストを送信すればいいのではないかと思います。
いずれにせよ、質問の内容が変わってしまっているので、再度別スレッドで質問した方が有効な回答が得られるかと思います。
よろしければ回答済みとしてのマークと、前の回答をベストソリューションとして指定してもらえると幸いです。
ありがとうございます!
こちらは一旦クローズさせていただきます
再度スレッド立てるのでアドバイスありましたらよろしくお願い致します!!