Liquid、JavaScriptなどに関する質問
お世話になっております。現在nodeのテンプレートを使用してアプリ開発をしていてgraphqlを使用してShopifyAPIと通信しようと思っているのですがうまくいきません。
現在表示されているエラーは以下の通りです。
InvalidShopError: Received invalid shop argument
GraphQLのドキュメントには「アクセストークンが必要です。OAuthを使用してトークンを作成してトークンを作成し、管理画面で作成されたカスタムアプリは管理画面で認証されます」と記載がありました。
アプリはnodeのテンプレートを使用して作成し、ngrokを使用して起動をしておりストアにインストールすることも成功しているためOAuthの認証はうまくいっていると思っています。
nodeのテンプレート使用してアプリを作成した際にweb/index.jsには下記のようなコードが記述されておりapp.useにて認証してアクセストークンを発行しているのかな?とは思っているのですが、この下にあるapp.getを呼び出すと上に記載してあるエラーになります。
// All endpoints after this point will require an active session
app.use(
"/api/*",
verifyRequest(app, {
billing: billingSettings,
})
);
app.get("api/2022-10/graphql.json", async (req, res) => {
const session = await Shopify.Utils.loadCurrentSession(req, res);
// GraphQLClient takes in the shop url and the accessToken for that shop.
const client = new Shopify.Clients.Graphql(
session.shop,
session.accessToken
);
const query = `{
products (first: 10) {
edges {
node {
id
title
}}`;
const response = await client.query({ data: query });
return response;
});
graphqlを呼び出す際には別途別ファイルとかでOAuthの認証を行いアクセストークンを発行する必要があるのでしょうか?
shopifyapiへアクセスするための方法やアクセストークンの発行の方法やセッション部分についてご教授いただければ幸いです。
解決済! ベストソリューションを見る。
成功
graphql無事動きました。
Graphqlのドキュメントを参考にapp.get("app/hoge/")のような形で作成して中にGraphqlのクエリ作成しました。呼び出す際にaxiosで呼び出していて認証のエラーが生じていました。
テンプレートを用いてアプリを使用した際に useAppQuery を用いて呼び出すと認証のエラーがなく無事に実行できました。
問題が解決しましたのでこの質問はクローズさせていただきます。
成功
graphql無事動きました。
Graphqlのドキュメントを参考にapp.get("app/hoge/")のような形で作成して中にGraphqlのクエリ作成しました。呼び出す際にaxiosで呼び出していて認証のエラーが生じていました。
テンプレートを用いてアプリを使用した際に useAppQuery を用いて呼び出すと認証のエラーがなく無事に実行できました。
問題が解決しましたのでこの質問はクローズさせていただきます。
Shopifyペイメント決済サービスを利用していて、ストアの管理画面の通知セクションに突然「Shopifyペイメントの使用を継続するために必要な情報」というバナーメッセージが表示さ...
By Mirai Dec 3, 2023すべてのShopifyアカウントはデフォルトではmyshopify.comのURLと関連付けられており、これはアカウント設定時に使用したビジネス名に基づいて作成されます。しかし、オ...
By Nina_13 Nov 26, 2023このトピックは英語版コミュニティの投稿:Shopify Web Pixel Manager Sandbox FAQの日本翻訳です。
By Mirai Nov 19, 2023