2

我想使用 oauth2 对用户进行身份验证以访问谷歌驱动器。我可以在使用 AccountManager 检索帐户时获取所需的访问令牌,然后通过以下方式获取令牌:

mgr.blockingGetAuthToken(account, ApiConst.DRIVE_AUTH_SCOPE, true);

但我希望用户能够通过提供用户名和密码而不是使用添加到手机的帐户来进行身份验证。这可能吗?

编辑

所以我试图在 WebView 中实现授权。我按照这个例子。我已经提取了代码请求参数,但用于检索访问令牌的代码似乎已被弃用,并且与 Google Drive SDK 使用的包不兼容。这是示例中用于检索访问令牌的代码:

AccessTokenResponse accessTokenResponse = new GoogleAuthorizationCodeGrant(new NetHttpTransport(),
new JacksonFactory(),
OAuth2ClientCredentials.CLIENT_ID,
OAuth2ClientCredentials.CLIENT_SECRET,
code,
OAuth2ClientCredentials.REDIRECT_URI).execute();

这可以通过其他方式完成还是我应该放弃?

4

1 回答 1

0

If you are in Android, you don't nedd to do all that stuff to authenticate a user. Just use "GoogleAccountCredential" object to set the user's account:

GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(this, scopes);
credential.setSelectedAccountName(theGoogleAccount);

Remember that for select user's account you need:

startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT);

Then you'll be able to initialize Drive:

Drive service = new Drive.Builder(AndroidHttp.newCompatibleTransport(), new GsonFactory(), credential).build();

Greetings.

于 2013-07-02T12:09:32.173 回答