Liquid、JavaScriptなどに関する質問
shopify/shopify-apiを使ってAPP_UNINSTALLEDのWebhooksでエラーが出てしまいます
なぜエラーが出るのかわかっておらず、回避方法わかる方いたら教えてもらえないでしょうか?
現在下記のshopifyから提供されている下記のライブラリを使って、nodeアプリを作成しています
ライブラリ名:shopify/shopify-api
バージョン:6.1.0
URL:https://github.com/Shopify/shopify-api-js
上記URLを参考に、記載されているWebhooksの手順に沿って、アプリケーションを作成し、アプリケーションがアンインストールされた際のWebhooksを登録しているのですが、
実際に、ショップサイトからアプリを削除を実施したところ、以下のエラーが表示されました
> Could not validate request for topic app/uninstalled
私のコードは下記になっています(★の箇所でエラーが出力)
this.shopify = shopifyApi({ apiKey: apiKey, apiSecretKey: apiSecretKey, scopes: scopes, hostName: hostName, apiVersion: LATEST_API_VERSION, isEmbeddedApp: true, }); // webhookを生成 await this.shopify.webhooks.addHandlers({ APP_UNINSTALLED: [ { deliveryMethod: DeliveryMethod.Http, callbackUrl: '/webhooks', callback: this.handleAppUninstalled, } ] }); // callbackが呼ばれた際の処理 app.get('/auth/callback', async (req: Request, res: Response) => { const shop = this.shopify.utils.sanitizeShop(req.query.shop.toString(), true); const callback = await this.shopify.auth.callback({ rawRequest: req, rawResponse: res }); // Webhooksの登録 const response = await this.shopify.webhooks.register({ session: callback.session }); Logger.info(response); if (!response['APP_UNINSTALLED'][0].success) { Logger.error(`${this.TAG} Failed register APP_UNINSTALLED webhook: ${response['APP_UNINSTALLED'][0].result}`); } const host = req.query.host; const session = new Session(callback.session.toObject()); for (const shopInfo of this.activeShopifyList) { if (shopInfo.shopName === shop) { shopInfo.session = session; break; } } // トップへリダイレクト res.redirect(`/?shop=${callback.session.shop}&host=${host}`); }); // webhooks受信時の処理 app.post('/webhooks', express.text({ type: '*/*' }), async (req: any, res: any) => { try { await this.shopify.webhooks.process({ rawBody: JSON.stringify(req.body), rawRequest: req, rawResponse: res }); Logger.info(`${this.TAG} webhook processed, returned status code 200`); } catch (error: any) { Logger.error(`${this.TAG} webhooks error ${error.message} response code=500`); ★ここが呼ばれる res.status(500).send(); } });
よろしくお願いします
お世話になっております。
フルバランスの道家と申します。
ご質問確認しました。
https://github.com/Shopify/shopify-cli/issues/2067
こちらですと、.envとshopifyダッシュボードのAPI KEYに齟齬あったことでエラーになっていたケースがありました。
なにかヒントになれば幸いです。
私たちの励みにもなりますので、
お役に立てていればBest Answerボタンを押して頂ければ嬉しいです。
フルバランス 道家
いつもShopifyをご利用いただき、ありがとうございます。 Shopifyは、皆様の日本語での利用体験の向上に努めております。さらなる改善のために皆様のご意見をお寄せい...
By JasonH May 9, 2025Shopify アカデミーの学習パスと認定スキルバッジExpanding Your Shopify Business Internationallyを活用して、国際的にビジネ...
By Shopify Feb 7, 2025Shopify アカデミーの学習パスB2B on Shopify:立ち上げとカスタマイズで卸売販売に進出しましょう。これら3つの無料コースは、ShopifyストアでB2B機能...
By Shopify Jan 31, 2025