GoogleAuthUtil.getToken提供com.google.android.gms.auth.GoogleAuthException:未知

时间:2014-01-13 09:20:33

标签: android google-authentication

我的目标是获取用户的基本个人资料信息(名字,姓氏等),而无需任何服务器端工作。我不想在用户界面上使用Google+登录按钮。

我可以毫无问题地收到用户的电子邮件。所以下一步是获取访问令牌以获取配置文件,这是我的代码

    String token = null;
    try {
        token = GoogleAuthUtil.getToken(getApplicationContext(), email, SCOPE);
    } catch (final UserRecoverableAuthException e) {
        startActivityForResult(e.getIntent(), REQUEST_CODE_AUTH_GOOGLE_ACCOUNT);
    } catch (IOException e) {
        Log.e(TAG, e.toString());
    } catch (GoogleAuthException e) {
        Log.e(TAG, e.toString());
    }

我定义了SCOPE

private static final String SCOPE = "oauth2:https://www.googleapis.com/auth/userinfo.profile";

当我运行我的应用时,我收到了“com.google.android.gms.auth.GoogleAuthException:Unknown”异常。我还尝试过Scope.PLUS_LOGIN,Scope.PLUG_PROFILE等其他范围。但他们都给了我同样的例外。

顺便说一句,在Google API控制台中,我已经设置了客户端ID。

我被困在这2天了。任何帮助将非常感激。

1 个答案:

答案 0 :(得分:1)

我认为你做错了。这就是我这样做的方式:

scopes.add(AnalyticsScopes.ANALYTICS_READONLY);

                credential = GoogleAccountCredential.usingOAuth2(this, scopes);
                if (TextUtils.isEmpty(appPreferences.getUserName()))
                {
                        try
                        {

                                startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER);
                        }
                        catch (ActivityNotFoundException e)
                        {

                                Toast.makeText(this, getString(R.string.gps_missing), Toast.LENGTH_LONG).show();

                                return;
                        }

                }

在这里查看我的源文件: https://github.com/madhur/GAnalytics/blob/develop/src/in/co/madhur/ganalyticsdashclock/MainActivity.java