FROM CACHE - jp_header
このコミュニティはピアツーピアサポートに移行しました。Shopify サポートは今後、このコミュニティへのサービスを提供いたしません。これからもぜひ、他のマーチャントやパートナーとつながり、サポートし合い、経験を共有してください。 当社の行動規範に違反する行動や削除を希望するコンテンツがありましたら、引き続きご報告ください

カスタムアプリ(remix)から外部apiやadmin apiにgraphqlでリクエストする際の方法について

解決済

カスタムアプリ(remix)から外部apiやadmin apiにgraphqlでリクエストする際の方法について

nomin
Shopify Partner
32 5 4

タイトルに記載した通りなのですが、今回知りたいのはカスタムアプリ(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,
  });
}

 

1 件の受理された解決策
テックギーク運営者
Shopify Partner
33 3 12

成功

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へリクエストを送れるようになります。

元の投稿で解決策を見る

4件の返信4

nomin
Shopify Partner
32 5 4

補足
apollo/clientを使用して、admin apiへのリクエストは確認できている。
rest apiでのリクエストの確認はできている

テックギーク運営者
Shopify Partner
33 3 12

ほぼ同じご質問の回答をこちらにしたので、ご参考にしていただければと思います。

https://community.shopify.com/c/%E6%8A%80%E8%A1%93%E7%9A%84%E3%81%AAq-a/%E3%82%AB%E3%82%B9%E3%82%BF%...

 

簡単に説明すると、

1. アプリインストール時にセッション情報をDBへ保存

2. テーマからのリクエストや外部APIからのリクエストの場合、 xxx.myshopify.com をキーにDBからセッション情報を取得

3. セッション情報またはアクセストークンを使って、Shpoify へ REST API, GraphQL API をリクエストする

となります。

 

ご参考になれば幸いです。

テックギーク運営者
Shopify Partner
33 3 12

成功

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 Partner
33 3 12

ベストアンサーありがとうございます。

Shopifyアプリ開発のプログラミングスクール「テックギーク-Shopifyアプリ開発」も運営しておりますので、ご興味があればぜひご検討いただけますと幸いです。

https://techgeek-school.com/