Google OAuth2 Login - получите никнейм YouTube и реальный адрес электронной почты
Есть ли способ получить псевдоним youtube пользователя вместе с его РЕАЛЬНЫМ (*@gmail.com) адресом электронной почты?
Всякий раз, когда я прошу Google подтвердить подлинность пользователя с областью «youtube.readonly», адрес электронной почты изменится на «*@ pages.plusgoogle.com ". Но когда я пропускаю область YouTube, я не получаю псевдоним YouTube ...
Запросы выполняются Google API PHP Client (https://github.com/google/google-api-php-client)
Примеры1. Правильный адрес электронной почты / неправильное имя:
Области применения:
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
Userinfo:
email: "********@gmail.com" //<- I need this
family_name: <My last name>
given_name: <My first name>
name: <My full name>
verified_email: true
[...]
2. Неправильный адрес электронной почты / правильное имя:
Области применения:
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/userinfo.profile
https://www.googleapis.com/auth/youtube.readonly
Userinfo:
email: "<My YT nickname>-<Random(?) ID>@pages.plusgoogle.com"
family_name: "."
given_name: <My YT nickname>
name: <My YT nickname> //<- and I need that
verified_email: true
[...]
Итак: Как получить электронное письмо из запроса № 1 и имя запроса № 2 без изменения областей действия (что требует повторной аутентификации)?
Код$oauth2 = new Google_Service_Oauth2($google);
if (strlen($code) > 10) {
try {
$accessToken = $google->authenticate($code);
} catch (Google_Auth_Exception $e) {
return new false;
}
if (!$accessToken) {
return false;
}
$userinfo = $oauth2->userinfo->get();
var_dump($userinfo);die;
}
свалка (с областью YT)
object(Google_Service_Oauth2_Userinfo)[325]
public 'email' => string '***@pages.plusgoogle.com' (length=36) //wrong email..
public 'family_name' => string '.' (length=1)
public 'gender' => null
public 'given_name' => string '***' (length=10)
public 'hd' => null
public 'id' => string '1013***' (length=21)
public 'link' => string 'https://plus.google.com/1013***' (length=45)
public 'locale' => null
public 'name' => string '***' (length=10)
public 'picture' => string 'https://lh5.googleusercontent.com/***/photo.jpg' (length=92)
public 'timezone' => null
public 'verified_email' => boolean true
protected 'data' =>
array (size=0)
empty
protected 'processed' =>
array (size=0)
empty