我正在使用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('/');
}
有什么建议吗?
您必须提到您希望从Facebook获得哪些字段。您可以在重定向到Facebook进行身份验证时添加scope
,如下所示,
return Socialite::driver('facebook')->scopes(['public_profile','email', 'user_friends'])->redirect();
你可以在这里了解更多关于Facebook权限的信息。
p.S。现在Facebook还允许手机号码创建帐户,而不是电子邮件。在这种情况下,您将不会收到电子邮件!!!