Facebook API getEmail() is null


Facebook API getEmail() is null

我正在使用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还允许手机号码创建帐户,而不是电子邮件。在这种情况下,您将不会收到电子邮件!!!