Site cover image

Site icon imageおかしんワークス

ビジネステクノロジーエンジニア @okash1n のブログです

ngrokを使ってローカルでWebhookをいい感じに受ける方法

GASなどで開発していて、Webhookで飛んでくる内容を確認したいことがあると思いますが、それをローカルで実現する方法です。

使うもの

https://webhook.site/ というウェブサイトを使うと、すぐにWebhookを受けれるのですが、外に飛ばしたく無いという場合もあると思うので、このサービスをローカルで動かして、かつngrokでインターネットからリクエストを受けれるようにします

準備

ngrok

インストール

Macであればbrew install ngrokでインストールできます。その他のOSは上記サイトをご覧ください。

auth-tokenを取得して設定

ngrokにサインアップした後、以下にアクセスし、Tokenを取得します。

Image in a image block
$ ngrok config add-authtoken xxxxxxxxxxx

これでトークンが設定できます。これによって、ローカルで動かしているWebサーバーを比較的セキュアにWeb公開できます。

webhook.siteをローカルにクローン

上記リポジトリをローカルにクローンしておきます

ローカルでwebhook.siteを動かし、ngrokで公開

$ git clone https://github.com/webhooksite/webhook.site.git
$ cd webhook.site
$ docker-compose up
$ ngrok http 8084
Image in a image block

ngrokの公開URLからローカルのwebhook.siteにリダイレクトされていることがわかります。

リクエストを飛ばしてみる。

リクエストを飛ばすURLを取得

https://xxxxxx-xxxxx-xxx.ngrok-free.app にアクセスすると、向けてリクエストを飛ばす用のURLが表示されるので「Copy to clipboard」します

Image in a image block

リクエストを飛ばすアプリケーションにURLを設定

その後、SlackやKintoneなどWebhookを飛ばす側のアプリケーションにコピーしたURLを設定します

Image in a image block

リクエストを受ける

Image in a image block

Kintoneでレコードを追加して、Webhookのリクエストを確認します。

Image in a image block

フォーマットもできます

Image in a image block

あとがき

これで比較的簡単かつセキュアに、ローカルでリクエストを受けて確認することができました。