Twitter APIで、TwitterのEmailを取得。getEmail()が機能しなかった忘備録

LaravelでTwitterログイン機能を設定しようとしています。
LaravelでのSNS認証は、ライブラリの Socialite を使うのがオススメです。

今回は、Laravelでのコード内容ではなくて、Twitterに登録しているemailアドレスを取得するためのTwitter Developer上での設定方法を紹介します。

なぜ、この記事を書こうかと思ったかというと
下記のようにemailをTwitterアカウントから取得しようとしたのですが、$emailがnullで取得できなかったためです。

$user = Socialite::with("twitter")->user(); 
$email =  $user->getEmail();

問題は、Twitter Developer上の設定でした。

Authentication settingsで
Request email address from users is enabled に変更します。

こちらの設定をすることで、

$user = Socialite::with("twitter")->user(); 
$email = $user->getEmail();

$emailが取得することが出来ました。

Twitter API でCallback URLsを設定する方法

TwitterでAPI連携する場合には、Twitter Developerに登録する必要があります。そこで、API keyやアクセストークンなどを取得して、各自のアプリケーションにて設定します。

Keyとは別に、callback urlsを必要するもまります。
Callback URLsがどのように使われるのかについては、Oauth 2.0の仕組を解説している方がいらっしゃったので、割愛します。

OAuth 2.0 の認可レスポンスとリダイレクトに関する説明

今回は、 Twitter Developer でCallback URLsを設定する場所を紹介します。

APPを作る際に、もしかしたら設定する箇所があったのかもしれませんが、APP作成後で追加することが可能です。

Developer Portal > Project > App > Appのsetting > Authentication settings

ここから、Editで、Callback URLsを追加することが可能です。

APPを作る際に、もしかしたら設定する箇所があったのかもしれませんが、作成後でもここから追加することが可能です。