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

标签 php facebook facebook-graph-api laravel laravel-socialite

我正在使用 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',
    ]);
}

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

最佳答案

我也遇到了同样的问题,是个bug!使用新版本的文件 FacebookProvider.php here和工作!

关于php - Laravel Socialite 2.0 Facebook 身份验证仅返回 ID 和名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31370907/

相关文章:

javascript - Facebook XFBML登录后,通过JavaScript获取用户信息

javascript - 在 Javascript 中使用通过 PHP 返回的 JSON

facebook - 从 facebook 图形 API 2.4 检索数据

javascript - 如何使用 facebook API 获取相册图片?

facebook - 在 Facebook 上创建测试用户

facebook - 无法理解 Facebook Insights API 返回的值

php - CodeIgniter:从所有文件夹中删除 index.html 是否安全?

php - 来自数据库的 Zend Framework 2 模块配置

php - 使用AJAX调用PHP页面问题

facebook - 必须使用事件访问 token 在不同的 url 上查询有关当前用户的信息