我正在使用laravel 5 Socialite并创建社交登录https://github.com/laravel/socialite。
当我使用这个功能时,当我遇到这个$facebook->getEmail();
我收到的电子邮件是空的
public function FacebookInfo()
{
$facebook = Socialite::driver('facebook')->user();
$user= new User();
$user-> username =$facebook->getNickname();
$user-> full_name =$facebook->getName();
$user-> avatar=$facebook->getAvatar();
$user-> email =$facebook->getEmail();
$user-> remember_token =$facebook->token;
$user ->level=1;
$user-> total_post = 0;
$user->save();
return redirect()->intended('/');
}
那么对这个问题有任何建议吗?先谢谢
答案 0 :(得分:0)
你必须提到你想要从Facebook获得的所有领域。您可以通过在重定向到Facebook进行身份验证时添加scope
来执行此操作,如下所示
return Socialite::driver('facebook')->scopes(['public_profile','email', 'user_friends'])->redirect();
您可以详细了解Facebook权限here。
<强> P.S 即可。现在,Facebook还允许手机号码创建帐户而不是电子邮件。在这种情况下,你不会收到电子邮件!!!