2013-09-24 4 views
0

У меня есть приложение для Android, которое использует API Google Plus, и я также прошу ввести токен доступа, который я передаю на свой сервер, поэтому я могу сделать вызовы API oauth 2.0 для получения сведений о пользователе , Я прошу маркер доступа с использованием GoogleAuthUtil.getToken со следующими областями:Ток доступа GoogleAuth не имеет области userinfo.profile

String scopes = "oauth2: https://www.googleapis.com/auth/userinfo.profile 
         https://www.googleapis.com/auth/userinfo.email 
         https://www.googleapis.com/auth/plus.login" ; 

тогда я передать маркер доступа я получаю к моему серверу, и сделать вызов апи к: https://www.googleapis.com/oauth2/v2/userinfo , который возвращает следующие сведения о пользователе: [id, email, verified, name, given_name, family_name, link, picture, gender, locale]

пока все хорошо. Это работает 90% времени. В последнее время я получаю пользователей, которые не имеют большинства деталей. Когда я анализирую свой маркер доступа я вижу следующее:

{ 
"issued_to": "534771845378-a8epgha85s5hkr3bqnsj8ihjvpl8pms.apps.googleusercontent.com", 
"audience": "534771845378-ha8epgha85s5hkr3bqnsj8ihjvpl8pms.apps.googleusercontent.com", 
"user_id": "103098746579631883577", 
"scope": "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email", 
"expires_in": 3382, 
"email": "***@***.com", 
"verified_email": true, 
"access_type": "offline" 
} 

Обратите внимание, что userinfo.profile сфера внезапно отсутствует. Любые мысли о том, почему это может случиться в некоторых случаях?

ответ

1

Возможно, это связано с тем, что все больше информации хранится в профиле Google+, который имеет разные элементы управления доступом, а не более старый профиль пользователя.

Вы можете получить их общественность информации о профиле с plus.login сферы с использованием https://www.googleapis.com/plus/v1/people/me конечной точки, но это будет только тогда, когда они сделали свою информацию публичной. Вы также не сможете получить электронную почту с помощью этой конечной точки - вам все равно придется использовать конечную точку oauth userinfo.

См. https://developers.google.com/+/api/latest/ для получения дополнительной информации и других доступных конечных точек.

+1

звучит о праве. Благодаря! – OferM

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