お世話になっております。現在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へアクセスするための方法やアクセストークンの発行の方法やセッション部分についてご教授いただければ幸いです。