【问题标题】:Android: GoogleAuthUtil.getToken - where is the account object supposed to come from?Android:GoogleAuthUtil.getToken - 帐户对象应该来自哪里?
【发布时间】:2016-04-01 12:56:42
【问题描述】:

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);

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

【问题讨论】:

    标签: android google-authentication google-signin googlesigninaccount oauth2


    【解决方案1】:

    使用文档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);
                } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多