【发布时间】:2015-05-12 01:48:53
【问题描述】:
我想获取授权代码来为我的应用启用服务器端 API 访问。我在 Unity3D 中使用 Unity 的 google play 游戏服务插件执行此过程。我有从 GoogleAuthUtils 类调用本机 getToken() 函数的函数:
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 调用:
将我重定向到类似的网址
参数code = 4/YUVer...
该代码与我尝试通过 Unity 函数获取的代码相同吗?
提前致谢,如有任何帮助,我将不胜感激。
【问题讨论】:
标签: android unity3d oauth-2.0 google-plus token