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の請求書の支払いが失敗したという通知を受け取って驚いたことはありますか。初めての支払いでエラーが発生したり、これまで何の問題もなく支払いできていたのに突然失敗し...
By Minami_ Sep 8, 20242023年2月、Shopifyはcheckout.liquidを廃止し、Checkout Extensibilityに移行することを発表いたしました。この新しいチェックアウト...
By JasonH Aug 15, 2024「味噌の可能性を、とき放つ」をコンセプトに、豊かな自然に恵まれた信州で味噌の製造販売を行う新田醸造。江戸末期に創業した老舗のみそ屋さんですが、2024年春、顧客層や販売範囲の...
By Minami_ Jul 30, 2024