Я хочу получить код авторизации, чтобы включить API-интерфейс на стороне сервера для моего приложения. Я делаю этот процесс в Unity3D с плагином сервисов Google Play для Unity. У меня есть функция, которая вызывает нативный функция getToken() из класса GoogleAuthUtils:Google+ getToken() throws UserRecoverableAuthException: NeedPermission
public string GetToken() {
string token = null;
Debug.Log("Before RetrieveUserEmail");
string email = RetrieveUserEmail() ?? "NULL";
Debug.Log("After RetrieveUserEmail email: " + email);
string scope = "oauth2:server:client_id:" + "666666666666-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.apps.googleusercontent.com"
+ ":api_scope:" + "https://www.googleapis.com/auth/plus.login";
using (AndroidJavaClass jc_unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"),
jc_gau = new AndroidJavaClass("com.google.android.gms.auth.GoogleAuthUtil")) {
using(AndroidJavaObject jo_Activity = jc_unityPlayer.GetStatic<AndroidJavaObject>("currentActivity")) {
token = jc_gau.CallStatic<string>("getToken", jo_Activity, email, scope);
}
}
Debug.Log("Token " + token);
return token;
}
, но я получаю AndroidJavaException: com.google.android.gms.auth.UserRecoverableAuthException: NeedPermission
Эта функция швы исправным, поскольку он работает с
string scope = "audience:server:client_id:" + "666666666666-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.apps.googleusercontent.com"
и возвращает токен аудитории.
Я не представляю, что я делаю неправильно.
Любые предложения?
Или, может быть, Вы можете уточнить, что с помощью URL-вызов:
перенаправляет меня на URL-адрес, как
, который имеет в коде параметра = 4/YUVer ..
- это тот же самый код, который я пытаюсь получить через функцию Unity?
Благодарим заранее, я буду признателен за любую помощь.
Благодарим за ответ. Первое, что есть URI: На консоли разработчика для Android-приложения он имеет следующие значения: urn: ietf: wg: oauth: 2.0: oob http: // localhost. Должен ли я использовать идентификатор клиента из приложения Android или веб-приложения? Второе: без отмены, после входа в систему через плагин Unity. Я вызываю свой метод GetToken(). И этот код (4/YUV), который я пытаюсь получить из этого метода. В моем вопросе после «Или, может быть, вы можете уточнить ...» я хотел спросить, что URL-адрес возвращает тот же код, который я пытаюсь получить через скрипт. Мне не нужны токены, такие как токен доступа, токен обновления, только код авторизации. Спасибо за ссылку, я посмотрю. –
Добавление дополнительных примеров. – class
Хорошо, это, вероятно, решение для меня, для обработки UserRecoverableAuthException. Я написал свой собственный плагин, чтобы получить токен, но при предоставлении автономного доступа происходит сбой приложений. Если бы вы могли, взгляните на мою проблему, пожалуйста: [issue] (http://stackoverflow.com/questions/29489461/google-gettoken-crash) –