2012-06-13 10 views
1

Я использую клиент Google Api PHP для входа пользователя. Я хочу получить адрес электронной почты пользователей. У меня есть следующий код.Google Api получить пользователей Адрес электронной почты

Область применения:

$client->setScopes('https://www.googleapis.com/auth/userinfo.profile'); 

Код:

$request = new apiHttpRequest("https://www.googleapis.com/oauth2/v2/userinfo?alt=json"); 
$userinfo = $client->getIo()->authenticatedRequest($request); 

$response = $userinfo->getResponseBody(); 
print "<pre>" . print_r(json_decode($response, true), true) . "</pre>"; 

Это дало мне только следующие детали

Array 
(
    [id] => 110084312800396764 
    [name] => Harsha M V 
    [given_name] => Harsha M 
    [family_name] => V 
    [picture] => https://lh6.googleusercontent.com/-Xusc8lwgLIQ/AAAAAAAAAAI/AAAAAAAAAAA/sOthy23uJGk/photo.jpg 
    [locale] => en 
) 
+0

возможно дубликат [Требовать Google вернуть адрес электронной почты в рамках OAuth] (http://stackoverflow.com/questions/3128981/ require-google-to-return-email-address-as-part-of-oauth) – Quentin

+2

https://www.googleapis.com/auth/userinfo.email –

+1

Попробуйте использовать 'OAuth :: fetch' grabbing/auth/userinfo .email (это вернет вам то, что вам нужно) и/или /auth/userinfo.profile, и с помощью/oauth2/v1/userinfo (все через www.googleapis.com) – AleksanderKseniya

ответ

4

Настройка объема в массиве делает работу.

$this->client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly', 'https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/userinfo.profile')); 
+0

Не только это, я замечаю, что если вы включите несколько массивов в массив, это не сработает, если в массиве не будет только одного элемента. Если у вас есть два или более, даже если один из них тот, который вы хотите, вы получите «ошибку»: «access_denied», «error_description»: «Запрошенный клиент не авторизовался». – stu

1
https://www.google.com/accounts/AuthSubRequest?next=http://www.example.com/index.php&scope=https://www.googleapis.com/auth/userinfo.email%20https://www.googleapis.com/auth/analytics.readonly&secure=0&session=1 
or 
https://www.google.com/accounts/AuthSubRequest?next=http://www.example.com/index.php&scope=email+https://www.googleapis.com/auth/analytics.readonly&secure=0&session=1 

обе ссылки выше работает для меня в PHP

Смежные вопросы