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

製作 プログラム

2018/11/14(水)

ラムネグから一言:無料アプリを3つ作りました。記事下部にリンクがあるので見てみてくださいね。さっそくみてみる

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で試していたのでそれでエラーになっているのかな、と思ってたんですが違いました。先に解決方法から。

解決方法は「.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を適当にうっちゃってたのがダメだったんですね。参考にしていただければ。

【どどん!】ラムネグではただいまアプリを絶賛提供中!さあ、選べる3つの無料アプリ!あなたはどれにする?

【わたガチャ】

あなただけのガチャを作ろう♪

すたーと!

【みんガチャ】

みんなで一つのガチャを作りあげよう♪

すたーと!

【litty-リティ】

秘密のメッセージをフォロワーさんに送っちゃおう!

すたーと!