2023.07.11[Tue]

ShopifyのWebhookを、webhook.siteとngrokでテストする

  • Shopify

目次

こんにちは。
ディレクターの田辺です。

以前、ShopifyのAPIをPostmanでテストするやり方をご紹介しました。
ShopifyのAPIをPostmanで手軽にテストする

しかし、APIだけじゃなく、ShopifyのWebhookも手軽にテストできないか、というご要望もこの世界のどこかに存在するかもしれません。

今回は、Webhook.siteとngrokを使用して、Shopifyのwebhookをテストする方法をご紹介します。

Webhook.siteとは

https://docs.webhook.site/

Webhookを受けるためのエンドポイントを提供してくれるサービスです。
また、Webhook.siteが提供してくれるエンドポイントにデータがPOSTされた際、そのデータを目視確認可能なGUIも提供してくれます。

サービス名からも分かる通り、Webサービスです。
ShopifyのWebhookは個人情報を扱うこともあるため、Webサービスを使うことに抵抗があったり、コンプライアンス的に無理な場合もあるかもしれません。

しかし、安心してください。

Webhook.siteのDocker Imageが提供されていますので、本記事ではDocker Containerを立ち上げローカルでテストする方法をご紹介します。

https://docs.webhook.site/install.html#installation-guide_1

ngrokとは

https://ngrok.com/

トンネリングツールです。
ローカル環境で稼働しているWebサービスをグローバルに公開することができます。

ローカルで稼働しているWebhook.siteのDocker Containerを、ngrokで外部に公開します。

ngrokがURLを発行してくれるので、ShopifyのWebhook設定にてエンドポイントとして登録する、というのが本記事の大筋です。

Webhook.siteとngrokを組み合わせてShopifyのWebhookを受けるイメージ

設定の流れ

筆者の環境はMacOSです。Windowsの方は適宜読み替えていただければと思います。

Webhook.siteのDocker Containerを立ち上げる

https://docs.webhook.site/install.html#installation-guide_1

上記、リンクに記載の通りです。
DockerDocker Composeはインストール済みとします。

// 適当なディレクトリを作り、移動します。

mkdir ~/webhook-test
cd ~/webhook-test

// https://github.com/webhooksite/webhook.site/blob/master/docker-compose.ymlをディレクトリ内に設置します。
curl -O https://raw.githubusercontent.com/webhooksite/webhook.site/master/docker-compose.yml

// Webhook.siteのcontainerを立ち上げます。
docker-compose up

// http://localhost:8084 にアクセスすると、Webhook.siteのGUIが表示されます。

ここまで、完了すると、http://localhost:8084 にアクセスすると下図の画面が表示されるはずです。

ngrokをインストールする

homebrewでインストールしても、nodeでインストールしても、どちらでも大丈夫です。

homebrew: https://ngrok.com/download
Node: https://www.npmjs.com/package/ngrok

上記リンクを参考にngrokをインストールします。

ngrokのインストールが完了したら、ngrokにアカウントを作成します。
https://dashboard.ngrok.com/signup

ngrokのマイページにAuth tokenがあるので、コピーします。

下記を実行し、Auth tokenを登録します。

ngrok config add-authtoken {上図で取得したAuth token}

ngrokでローカルのWebhook.siteを公開する

下記を実行します。

ngrok http 8084

下図のような出力が表示されます。

上図のhttpsの方をコピーします。

Webhookのエンドポイントを作る

Webhook.site (http://localhost:8084)にアクセスすると下記のようなURLが表示されているはずです。
http://localhost:8084/2008456f-56aa-4529-b93d-64faa5bf57c7
このURLのうち、
2008456f-56aa-4529-b93d-64faa5bf57c7
の部分をコピーし、
(この文字列の内容は皆さんそれぞれ異なりますので、ご自身の環境に表示されている文字列をお使いください。)
ngrokが発行したURLと結合させます。
下記のようになります。

https://xxxx-xxx-xxx-xxx-xxx.ngrok-free.app/2008456f-56aa-4529-b93d-64faa5bf57c7

このURLが、Shopifyに登録するエンドポイントになります。

ShopifyのWebhookにエンドポイントを登録する

Shopifyのストア管理画面の「設定 > 通知」にアクセスし、下図のようにします。

以上でWebhookの設定は完了です。

Shopifyストアで注文を行ってから、http://localhost:8084にアクセスすると、下図のようにShopifyのWebhookから受け取ったデータが、ローカルのWebhook.siteに表示されていることを確認できるはずです。

まとめ

ここまで書いて思いましたが、思ったより「手軽」ではないかもしれませんね。
しかし、Webhookのエンドポイントをいちいち構築するよりはきっと手軽なはずです!

ShopifyのWebhookに興味津々な方がこの世界のどこかにいると信じ、そんな方にこの記事が届くことを祈っております。

それでは。

Share

Shopifyの決済アイコンをヘッダー・フッターに追加する方法ShopifyのOrder Printerに商品オプション(Line Item Property)を追加する方法