2

Я использую HWIOAuthBundle для извлечения данных из google + api. Для этого, я продлил класс FOSUBUserProvider, и я переписал public function loadUserByOAuthUserResponse(UserResponseInterface $response) {} следующим образом:Как получить familyName и givenName в google plus?

public function loadUserByOAuthUserResponse(UserResponseInterface $response) { 
    // some check 
    // ... 
    // getting the attributes for the google+ api 
    $attr = $response->getResponse(); 

    // creating and setting my user 
    $user = $this->userManager->createUser(); 
    $user->$setter_id($username); 
    $user->$setter_token($response->getAccessToken()); 

    $user->setEmail($response->getEmail()); 
    $user->setEmailCanonical($response->getEmail()); 
    if (isset($attr['gender'])) { 
     if ($attr['gender'] == 'male') 
      $user->setGoogleGender(true); 
     else 
      $user->setGoogleGender(false); 
     } 
     if (isset($attr['birthday'])) { 
      $user->setGoogleBirthday(new \DateTime($attr['birthday'])); 
     } 
     if (isset($attr['name'])) { 
      // $attr['name'] contains displayName (givenName and familyName together) 
     } 

return $user; 
} 

Это, как определено лицо в Google +.

{ 
"kind": "plus#person", 
"etag": "XXXX", 
"gender": "male", 
"objectType": "person", 
"id": "9999999999999", 
"displayName": "Jule Dupond", 
"name": { 
    "familyName": "Dupond", 
    "givenName": "Jule" 
}, 
"url": "https://plus.google.com/9999999", 
"image": { 
    "url": "https://....", 
    "isDefault": true 
}, 
"isPlusUser": true, 
"circledByCount": 1, 
"verified": false 
} 

Моя цель просто получить givenName и familyName.

Благодарим за предоставленную мне идею!

+0

$ attr ['name'] ['givenName']? – Cerad

+0

Я уже пробовал это, но без успеха !!! – user3320184

+0

print_r ($ attr) дает? – Cerad

ответ

1

Я нашел решение. Чтобы получить familyName и givenName, вам просто нужно: $attr['given_name'] и $attr['family_name'].

Надеюсь, что это поможет другим ...