4

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

ErrorException in FacebookProvider.php line 89:
Undefined index: first_name

错误来自此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',
    ]);
}

如果我在这个映射之前dd()的参数。$user我只得到 id 和经过身份验证的 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',
    ]);
}

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

4

3 回答 3

6

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

于 2015-07-16T18:48:04.227 回答
1

我更新到最新版本的社交名流。现在它起作用了!

于 2015-07-17T05:12:03.637 回答
0

对于那些对如何更新到最新版本感到困惑的人,只需将其添加到您的composer.json文件中。

"laravel/socialite": "2.*"

并进入您的终端作曲家更新

干杯!

于 2015-11-21T17:51:34.667 回答