2016-01-09 101 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還允許手機號碼創建一個帳戶,而不是電子郵件。在這種情況下,你將不會收到一封電子郵件!