Liquid、JavaScriptなどに関する質問
タイトルに記載した通りなのですが、今回知りたいのはカスタムアプリ(remix)から外部apiやadmin api(shopify.authenticateは使用しない)にリクエストする際の方法についてです。
shopifyののdocumentにあるgraphqlのリクエスト方法だと、下記のようなリクエスト方法になると思うんですけど、こちらの場合は通常のカスタムアプリからのadmin apiへのリクエス方法になりますので、外部APIやテーマからproxyを経由してadmi apiにリクエスト(リクエストの形式が違うため)する際には使用できないと思っています。。
このような場合はapollo/clientなどのライブラリを別途インストールして設定し、リクエストする形になるのでしょうか?
それとも、既存のshopify app にある機能を使用してリクエストできますでしょうか?
export async function action({ request }: ActionArgs) {
const { admin } = await authenticate.admin(request);
const response = await admin.graphql(
`...etc`,
{
variables: {},
}
);
const response = await response.json();
return json({
data: response.data,
});
}
解決済! ベストソリューションを見る。
成功
Remixフレームワーク(@Shopify/shopify-app-remix)で、AppProxyやCheckout Extensions経由で、REST API, GraphQL API を利用する方法を確認しました。
※ @Shopify/shopify-app-remix ver 1.1.0
import shopify from "~/shopify.server.js";
const { admin, session } = await shopify.unauthenticated.admin(shop);
// adminの使い方は同じ
const productCount = await admin.rest.resources.Product.count({ session });
これで埋め込みアプリ以外からも簡単にShopifyへリクエストを送れるようになります。
補足
apollo/clientを使用して、admin apiへのリクエストは確認できている。
rest apiでのリクエストの確認はできている
ほぼ同じご質問の回答をこちらにしたので、ご参考にしていただければと思います。
簡単に説明すると、
1. アプリインストール時にセッション情報をDBへ保存
2. テーマからのリクエストや外部APIからのリクエストの場合、 xxx.myshopify.com をキーにDBからセッション情報を取得
3. セッション情報またはアクセストークンを使って、Shpoify へ REST API, GraphQL API をリクエストする
となります。
ご参考になれば幸いです。
成功
Remixフレームワーク(@Shopify/shopify-app-remix)で、AppProxyやCheckout Extensions経由で、REST API, GraphQL API を利用する方法を確認しました。
※ @Shopify/shopify-app-remix ver 1.1.0
import shopify from "~/shopify.server.js";
const { admin, session } = await shopify.unauthenticated.admin(shop);
// adminの使い方は同じ
const productCount = await admin.rest.resources.Product.count({ session });
これで埋め込みアプリ以外からも簡単にShopifyへリクエストを送れるようになります。
ベストアンサーありがとうございます。
Shopifyアプリ開発のプログラミングスクール「テックギーク-Shopifyアプリ開発」も運営しておりますので、ご興味があればぜひご検討いただけますと幸いです。
ユーザー | ランク |
---|---|
36 | |
11 | |
7 | |
6 | |
6 |
すべてのShopifyアカウントはデフォルトではmyshopify.comのURLと関連付けられており、これはアカウント設定時に使用したビジネス名に基づいて作成されます。しかし、オ...
By Nina_13 Nov 26, 2023このトピックは英語版コミュニティの投稿:Shopify Web Pixel Manager Sandbox FAQの日本翻訳です。
By Mirai Nov 19, 2023Shopifyの管理画面では、商品ごとや配送元のロケーション(倉庫)ごとにカスタム配送料を設定することができます。特に購入金額による送料無料設定は、顧客の購買意欲を高める効果的な手...
By Alex06 Nov 5, 2023