Итак, я перепробовал буквально все, что прочитал, и до сих пор не могу найти способ восстановить зарегистрированный адрес электронной почты пользователя Google.
Это мой код ($ client — это HTTP-клиент):
$response = $client->post($this->getAccessTokenURL(), ['query' => [
'client_id' => $this->getClientID(),
'client_secret' => $this->getClientSecret(),
'code' => $params['code'],
'grant_type' => 'authorization_code',
'scope' => 'email'
]]);
$data = json_decode($response->getBody());
$response = $client->get('https://www.googleapis.com/plus/v1/people/me', ['query' => [
'access_token' => $data->access_token
]]);
$data = json_decode($response->getBody());
Результат содержит тонны данных, но не адрес электронной почты. Я везде читал, что объем «электронной почты» был правильным для этой цели, но безрезультатно.
Образец результата:
object(stdClass)[1181]
public 'kind' => string 'plus#person' (length=11)
public 'etag' => string '...' (length=57)
public 'gender' => string 'male' (length=4)
public 'urls' =>
array (size=1)
0 =>
object(stdClass)[1178]
public 'value' => string '...' (length=35)
public 'type' => string 'otherProfile' (length=12)
public 'label' => string 'Picasa Web Albums' (length=17)
public 'objectType' => string 'person' (length=6)
public 'id' => string '...' (length=21)
public 'displayName' => string '...' (length=15)
public 'name' =>
object(stdClass)[1183]
public 'familyName' => string '...' (length=6)
public 'givenName' => string '...' (length=8)
public 'url' => string 'https://plus.google.com/...' (length=45)
public 'image' =>
object(stdClass)[1180]
public 'url' => string '...' (length=98)
public 'isDefault' => boolean false
public 'placesLived' =>
array (size=1)
0 =>
object(stdClass)[1184]
public 'value' => string '...' (length=13)
public 'primary' => boolean true
public 'isPlusUser' => boolean true
public 'language' => string 'en' (length=2)
public 'circledByCount' => int 26
public 'verified' => boolean false
Также пробовал полный URL-адрес области (ничего не меняет) и «plus.profile.emails.read», которые упоминаются в документации, но это дает мне неверную ошибку области.
Кто-нибудь может помочь?
Заранее большое спасибо.
Задача ещё не решена.
Других решений пока нет …