Google OAuth2会在发布时抛出GoogleAuthException,但不会在调试模式下抛出

时间:2014-02-09 06:24:51

标签: android

我正在使用以下范围访问Android中的Google Auth2。 XXXXXX.apps.googleusercontent.com是指Web应用程序客户端ID。

private static final String SCOPE = "oauth2:server:client_id:XXXXXX.apps.googleusercontent.com:api_scope:https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.login";

以下代码行在调试模式下工作,但不在发布模式下工作。 getToken方法的所有参数在每种模式下都是相同的。

String token = GoogleAuthUtil.getToken(mActivity, mEmail, mScope);

在发布模式下,它会给我一个错误为“未知”的GoogleAuthException。我到处搜索,但我没有找到任何满意的答案。从理论上讲,这段代码不应该在调试模式或发布模式下工作,因为不涉及签名吗?

更新:我最终发现我必须使用新的Google+登录功能https://developers.google.com/+/mobile/android/sign-in

1 个答案:

答案 0 :(得分:1)

SHA1键以两种方式获取:

a)来自debug keytool b)从发布keytool

您需要更改sha1密钥才能生成客户端ID:

1)目前正在进行调试,你通过调试keytool文件使用你电脑的sha1签名

2)但现在处于发布模式,您需要使用发布keytool文件中的sha1键

并释放keytool,您可以通过签名来获取.apk文件

希望这些信息可以帮到你。