В моем приложении Android я запрашиваю токен google plus, который я отправляю на сервер. Я хочу иметь возможность получать информацию о пользователе, включая его адрес электронной почты на сервере.Android, запрашивающий Google + адрес электронной почты пользователя
Вот вызов, который работает, но не дает мне по электронной почте:
GoogleAuthUtil.getToken(activity, Plus.AccountApi.getAccountName(googleApiClient), "oauth2:" + Scopes.PLUS_ME + " " + Scopes.PLUS_LOGIN + " " + Scopes.PROFILE);
С ним я только получить эту информацию:
{
"id": "11213535252359196332836",
"name": "Name Surname",
"given_name": "Name",
"family_name": "Surname",
"link": "https://plus.google.com/+laskdjfksdjf",
"picture": "https://asdfsdafasdfasdfasdfasdfasdfsdaf7c/photo.jpg",
"gender": "male",
"locale": "en"
}
я обнаружил, что мне нужно попросить userinfo.email разрешение, поэтому я изменил мой вызов:
GoogleAuthUtil.getToken(activity, Plus.AccountApi.getAccountName(googleApiClient), "oauth2:" + Scopes.PLUS_ME + " " + Scopes.PLUS_LOGIN + " " + Scopes.PROFILE + " https://www.googleapis.com/auth/userinfo.email");
проблема заключается в том, что теперь getToken() возвращает мне эту ошибку:
09-16 18:53:57.311: W/System.err(26467): com.google.android.gms.auth.UserRecoverableAuthException: NeedPermission
09-16 18:53:57.316: W/System.err(26467): at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
09-16 18:53:57.316: W/System.err(26467): at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
09-16 18:53:57.316: W/System.err(26467): at lt.sm.discountcity.GPlus.getServerOnlineToken(GPlus.java:237)
09-16 18:53:57.316: W/System.err(26467): at lt.sm.discountcity.fragments.LoginFragment$5$1.runOnSeparateThread(LoginFragment.java:173)
09-16 18:53:57.316: W/System.err(26467): at lt.smtools.tasks.TaskManager$2.run(TaskManager.java:139)
09-16 18:53:57.316: W/System.err(26467): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
09-16 18:53:57.316: W/System.err(26467): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
09-16 18:53:57.316: W/System.err(26467): at java.lang.Thread.run(Thread.java:841)
Любые идеи, что я делаю неправильно и как это решить?
возможно дубликат [UserRecoverableAuthException: NeedPermission] (http://stackoverflow.com/questions/14383965/userrecoverableauthexception-needpermission) – njzk2
возможно дубликат [Google+ не возвращает адрес электронной почты друга пользователя в] (http://stackoverflow.com/questions/24262227/google-does-not-return-users-friends-email-address) – DaImTo
Я видел первый пост, и я не понимаю, как второй пост дублируется, потому что он рассказывает о том, как получить друзей по электронной почте, а не от пользователя, который вошел в систему. Решение для первого сообщения помещает меня в бесконечный цикл. – SMart