8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ngrokの切り替え時に注意すること

Posted at

オリジナルのlinebotを作成する際に、ローカル環境でngrokを利用して、動作確認を行っていたのですが、デプロイ後、本番環境から開発環境に戻してngrokを使って動作確認をする際に、Webhook URLをngrok用のURLに書き換え、通信状況の確認を行うのですが、毎回、403Forbiddenエラーが表示されてしまい、ん?なんでだ?と悩んでしまうことがあったので、解決方法をメモしておきます。

開発環境
macOS BigSur
ruby-2.6.5
Rails 6.0.3.6

ngrok(エングロック)というのは、ローカルサーバーを外部公開して、どこまらでもアクセスできるようにするツールのことです。

403Forbiddenエラー

messagingAPIの公式リファレンスでは、ステータスコード403エラーについて

リソースにアクセスする権限がありません。ご契約中のプランやアカウントに付与されている権限を確認してください。

と記載されており、リクエストを送っても、権限がないので、アクセスできないということだと分かります。
つまりは、Webhook URLに設定した

https://xxxxxxx.ngrok.io/callback

xxxxxxx.ngrok.ioの部分からの通信を許可するような設定をアプリケーション側に設定しないといけません。

解決方法

rails6以降を使用する場合、config/application.rb内に先程説明したxxxxxxx.ngrok.ioの部分をコピーし、そこからの通信を許可する設定を行うとエラーが解決できます。

config/application.rb
(省略)
config.hosts << "xxxxxxxxx.ngrok.io"
(省略)

ngrokは立ち上げるたびに、このURLが変更され、毎回、このエラーにハマってしまったので、忘れないように記事にさせていただきました。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?