2016-01-09 58 views
0

我使用laravel 5 Socialite并创建社交登录https://github.com/laravel/socialite。 当我使用这个功能时,我遇到了这个$facebook->getEmail(); 的电子邮件我得到它的空Facebook api 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

你必须提到你想要从Facebook的所有领域。您可以通过添加一个scope重新导向至Facebook像下面认证做到这一点,

return Socialite::driver('facebook')->scopes(['public_profile','email', 'user_friends'])->redirect(); 

您可以了解更多关于Facebook的权限here

P.S。现在Facebook还允许手机号码创建一个帐户,而不是电子邮件。在这种情况下,你将不会收到一封电子邮件!