Laravel Socialite 2.0 Facebook身份验证仅返回ID和名称

Hom*_*ien 4 php facebook facebook-graph-api laravel laravel-socialite

我正在使用Laravel的Socialite包(版本2.0.0).它对谷歌和github很有用但是当我尝试用facebook登录时,我得到了这个:

ErrorException in FacebookProvider.php line 89:
Undefined index: first_name
Run Code Online (Sandbox Code Playgroud)

FacebookProvider.php错误是从这个方法:

protected function mapUserToObject(array $user)
{
    return (new User)->setRaw($user)->map([
        'id' => $user['id'], 'nickname' => null, 'name' => $user['first_name'].' '.$user['last_name'],
        'email' => isset($user['email']) ? $user['email'] : null, 'avatar' => $this->graphUrl.'/'.$this->version.'/'.$user['id'].'/picture?type=normal',
    ]);
}
Run Code Online (Sandbox Code Playgroud)

如果我在这个映射之前dd()$user参数.我只获得身份验证和经过身份验证的Facebook用户的名称.所以,这意味着我没有收到Facebook用户的电子邮件.我至少需要nameemail用户.

经过dd()这种方法看起来是这样的:

protected function mapUserToObject(array $user)
{
    dd($user);
    return (new User)->setRaw($user)->map([
        'id' => $user['id'], 'nickname' => null, 'name' => $user['first_name'].' '.$user['last_name'],
        'email' => isset($user['email']) ? $user['email'] : null, 'avatar' => $this->graphUrl.'/'.$this->version.'/'.$user['id'].'/picture?type=normal',
    ]);
}
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?请帮我.

Ger*_*man 6

我有同样的问题,是一个错误!使用新版本的文件FacebookProvider.php 在这里工作!