我的目标是获取用户的基本个人资料信息(名字,姓氏等),而无需任何服务器端工作。我不想在用户界面上使用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天了。任何帮助将非常感激。
答案 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