2012-10-22 47 views
2

我想用oauth2驗證用戶是否可以訪問谷歌驅動器。我可以得到所需要的訪問令牌使用的AccountManager檢索一個帳戶,然後用獲得的令牌時:是否可以使用oauth2手動驗證用戶

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

但我希望用戶能夠通過提供用戶名和密碼,而不是使用添加到該帳戶進行身份驗證電話。這可能嗎?

編輯

所以我試圖實現在web視圖的授權。我跟着this example。我提取了代碼請求參數,但用於檢索訪問令牌的代碼似乎已被棄用,並且與Google Drive SDK使用的軟件包不兼容。這是用於檢索訪問令牌中的示例代碼:

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

可這在一些其他的方式來完成,或者我應該乾脆放棄?

+0

我看過這個https://code.google.com/p/google-oauth-java-client/,但從來沒有用過它不知道它是否可以有任何幫助 –

+0

爲什麼你想要做這樣的事情? –

+0

@Alex謝謝我一直在看代碼,但無法弄清楚如何使用它。 – iixi

回答

0

如果您使用的是Android系統,則不需要執行所有這些操作來對用戶進行身份驗證。 只要使用「GoogleAccountCredential」對象來設置用戶的帳戶:

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

請記住,選擇用戶帳戶您需要:

startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT); 

然後你就可以初始化驅動器:

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

問候。

+0

嘿@Cabuxa.Mapache,這個用於爲我工作,但僅僅在幾天前它停止工作,現在它引發這個錯誤'com.google.android.gms.auth.GoogleAuthException:Unknown.'任何想法爲什麼?我的示波器有問題嗎? https://gist.github.com/lawloretienne/7351151 – toobsco42

相關問題