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認証された Facebook ユーザーの ID と名前のみを取得します。つまり、Facebook ユーザーのメールが届かないということです。私は少なくともユーザーの必要がnameありemailます。

このメソッドの後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 に答える
0

最新バージョンに更新する方法について混乱している方は、これをcomposer.jsonファイルに追加してください。

"laravel/socialite": "2.*"

ターミナルコンポーザーの更新に

乾杯!

于 2015-11-21T17:51:34.667 に答える