我正在使用一個登錄Gdrive服務的Android應用程序,並在詢問用戶授予權限後,它保存該令牌並將其發送到我們的後端,即詢問gdrive服務本身的內容。之前,我使用AccountManager登錄,但幾周前,我收到一封來自Google的電子郵件,要求將授權過程移至Google Play服務庫。我有得到令牌的問題,這裏是我的代碼:getToken()只給出刷新標記
GoogleAccountCredential credential = GoogleAccountCredential.usingOAuth2(myApp.getApplicationContext(), DriveScopes.DRIVE);
Account[] mAccounts = credential.getAllAccounts();
選擇要登錄賬號後,聽者使得這樣的:
Account account = mAccounts[position];
credential.setSelectedAccountName(account.name);
new GetDriveServiceTask().execute(credential);
private class GetDriveServiceTask extends AsyncTask<GoogleAccountCredential, Void, Void> {
protected Void doInBackground(GoogleAccountCredential... credentials) {
try{
GoogleAccountCredential credential = credentials[0];
String token = credential.getToken();
} catch (UserRecoverableAuthException e) {
UserRecoverableAuthException exception = (UserRecoverableAuthException) e;
Intent authorizationIntent = exception.getIntent();
startActivityForResult(authorizationIntent,REQUEST_PERMISSIONS);
}
我有問題,當用戶給了訪問他/她的帳戶之前,該命令credential.getToken();只給我我認爲是刷新標記,如:「1/SGvUDUNnRG8wVs_REISKx1xuupbwAKeEQ5fHXH-rbOk」...我如何從此獲取訪問標記?
我試圖使郵政調用URL「https://accounts.google.com/o/oauth2/token」如下所述:https://developers.google.com/accounts/docs/OAuth2WebServer#refresh但每次我得到unauthorized_client ...
請我被卡在這裏,電子郵件說,AccountManager方法將停止工作2月1日...
在此先感謝!
我有完全一樣的問題。這不是所問問題的答案!我一直在尋找這個解決方案好幾天,我發現所有這些都是谷歌工程師的不屑一顧的答案。 – cdavidyoung