Android:GoogleAuthUtil.getToken - 帐户对象应该来自哪里?

标签 android google-authentication google-signin googlesigninaccount oauth-2.0

GoogleAuthUtil.getToken 的第二个参数需要一个帐户对象,但是当您连接到 Google SignIn 时,您返回的结果是 GoogleSignInAccount - 这不是一回事。有没有办法将 GoogleSignInAccount 转换为 Account 对象?

 private void handleSignInResult(GoogleSignInResult result) {

        if (result.isSuccess()) {

            googleSignInAccount = result.getSignInAccount();

        }
    }

然后:

authToken = GoogleAuthUtil.getToken(context, [need an account here], scope);

我知道我可以通过显示帐户选择器取回电子邮件地址,我也可以从谷歌登录结果中获取电子邮件地址 - 但我看不到获取整个帐户对象的方法。

最佳答案

使用文档 here您可以看到响应具有 KEY_ACCOUNT_NAME 和 KEY_ACCOUNT_TYPE。因此,您可以创建自己的 Account object

代码:

  if (requestCode == REQUEST_CODE_PICK_ACCOUNT) {
            // Receiving a result from the AccountPicker
            if (resultCode == RESULT_OK) {
                mEmail = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME);
                mType = data.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE);
                // With the account name acquired, go get the auth token
                Account account = new Account(mEmail, mType);
                String token =  GoogleAuthUtil.getToken(context, account, mScope);
            } 

关于Android:GoogleAuthUtil.getToken - 帐户对象应该来自哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34480587/

相关文章:

android - 如何在Android中添加全透明到半透明的渐变

android - AlertDialog 中字符串资源中的超链接

android - 每次使用 GoogleSignInApi 显示帐户选择器

javascript - 使用 angularjs 使用 Google 登录(gapi)时出现问题

android - E/TokenRequestor : You have wrong OAuth2 related configurations, 请检查。详细错误:UNREGISTERED_ON_API_CONSOLE

android - flutter 中的 Google_sign_in 插件出错

java - 如何在 Android 上获得浮点确定性?

java - 需要了解我引用的代码中 Android Studio 检查 "condition is always true"的原因

angular - firebase auth 在刷新时丢失 cookie

php - stackoverflow 的 openid for PHP 实现