【laravel】ツイッター認証でエラー415が返ってくる時の解決方法

製作 プログラム

最終更新日:2018/11/14

ラムネグから一言:寝る前に読むとくだらなすぎて逆に寝れると好評なすごい適当なブログをこっちではじめてます.

laravelのツイッターOAuth認証でエラー

laravelのツイッター認証を作っていて、こんなエラーが。

Received HTTP status code [403] with message "<?xml version="1.0" encoding="UTF-8"?><errors><error code="415">Callback URL not approved for this client application. Approved callback URLs can be adjusted in your application settings</error></errors>" when getting temporary credentials.

localhostで試していたのでそれでエラーになっているのかな、と思ってたんですが違いました。先に解決方法から。

  1. laravelのツイッターOAuth認証でエラー
  2. 解決方法は「.envの再読み込み」
  3. 何をしているのか説明
  4. もっとかみくだくと?
  5. .envファイルはキャッシュされる
  6. なので.envファイルのキャッシュをクリアする
  7. まとめ

解決方法は「.envの再読み込み」

php artisan config:cache

これを実行すると.envファイルの変更が読み込まれ、エラーがでなくなります。

何をしているのか説明

まず、「Callback URL not approved for this client application…」のエラーがどんなエラーなのか英語イヤですがなんとなくで読んでみると、

ツイッターに登録されているコールバックURLと今さっきリクエストされたURLが違うからダメ

というエラーだという事がわかります。

もっとかみくだくと?

ツイッターに自分のアプリを登録するときに設定したコールバックURLの値と、laravelのsocialiteで使っている環境変数である「TWITTER_REDIRECT」の値が一緒じゃないと出るエラー、ということ!

.envファイルはキャッシュされる

でもツイッターに登録したコールバックURLと、laravel側の.envファイルに書いた「TWITTER_REDIRECT」を一緒にしてもエラーが出たまま、という事が起こります。

いろいろ読んでいると.envファイルで宣言した環境変数(「TWITTER_REDIRECT」みたいなの一つ一つが環境変数です)はキャッシュ(一時的に保持)されるので、.envファイルを編集して保存してもすぐにはその変更が反映されないという事みたいです。

なので.envファイルのキャッシュをクリアする

という事で、冒頭の解決方法の、

php artisan config:cache

を実行して.envファイルのキャッシュをクリア。そうすると勝手に.envファイルを再読み込みしてくれるので、設定した環境変数がすぐに有効になります。

まとめ

localhostだから出てるっぽいエラーと思ったんですが違いました。

最初にリダイレクトURLを適当にうっちゃってたのがダメだったんですね。参考にしていただければ。

【おしらせ、というか完全なる宣伝】

文体がもうぜんぜん適当すぎてあれだけどものすごい自由に書いてるブログ「檸檬だくだく」もよろしく.寝る前に読める恐ろしくくだらないやつです.

こんなにも一ミリも目を引かれないタイトルを取り扱ってます: ココア20g / ハイチュウとかってさ / なぜ米と小麦を食べようと思ったのかの謎 /