2013-01-23 68 views
4

我正在使用一個登錄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日...

在此先感謝!

回答

-2

您應該授權使用Google Play服務,並且只會授予您訪問令牌。 有關如何授權您與谷歌Play下載Android應用服務,以便將請求發送到驅動器API,請查看以下快速入門指南的例子:

https://developers.google.com/drive/quickstart-android

+3

我有完全一樣的問題。這不是所問問題的答案!我一直在尋找這個解決方案好幾天,我發現所有這些都是谷歌工程師的不屑一顧的答案。 – cdavidyoung