Twitter APIを使えば、Twitterアカウントに紐づくメールアドレスも取得することができますが、アプリ側の設定が必要です。
その設定方法をサクッと紹介。
Twitter APIを使ってメールアドレスを取得するための設定
まず、Twitter Developerの「App」画面を開きます。
開いたら、「Permissions」ページを見てみましょう。
下のように「Additional permissions」のところにチェックが入っていない場合は、メールアドレスが取れない状態です。
「Additional permissions」にチェックをつけるには、「App details」で「利用規約」と「プライバシーポリシー」を設定する必要があります。
「App details」ページを開いたら、「Terms of Service URL」と「Privacy policy URL」という項目があるので、それぞれにあなたが用意した「利用規約」ページと「プライバシー」ポリシーページのURLを登録します。
こちらを登録しておかないと、メールアドレスが取得できません。
わかるとは思いますが、「Terms of Service」が「利用規約」、「Privacy policy URL」が「プライバシーポリシー」です。一応。
書き方わからねぇ・・・
という人もいるかもしれませんが、大丈夫です。
「利用規約」や「プライバシーポリシー」はどこもだいたい同じような内容なので、いくつかサイトにアクセスして、内容を真似すればOKです。
ただし、丸パクリするのではなく、あなたのサイトに合うように書きかえてください。
利用規約ページ、プライバシーポリシーページを作って、URLを登録したら、再度「Permissions」ページを開きましょう。
下の写真のように、チェックが付けられるようになるので、こちらのチェックをつけて「Save」すれば、すぐにメールアドレスを取得できるようになります。
Laravel × Socialiteでメールアドレスを取得するには?
getEmail()メソッドを使えば簡単に取れます。
// コールバック関数内
$twitter_user = Socialite::driver('twitter')->user();
$email = $twitter_user->getEmail()
ただし、Twitterアカウント上にメールアドレスが設定されていない場合は、当然ですが取得できません。