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',
]);
}
何が問題なのですか?私を助けてください。