1

我想驗證我的Android應用程序的用戶與oauth2 protocole,以便用戶不需要爲我的應用程序創建一個登錄名和密碼。谷歌播放服務認證(oauth 2.0)

爲了做到這一點,我按照下面的教程:http://android-developers.blogspot.fr/2013/01/verifying-back-end-calls-from-android.html

我已經導入谷歌播放服務SDK示例(在AndroidSDK \演員\谷歌\ google_play_services \ SAMPLES \ AUTH),我有改變的範圍值。

但是,我無法獲得身份驗證令牌...雖然我已正確配置我的谷歌控制檯API。

這裏是調用爲gettoken方法的功能:

protected String fetchToken() throws IOException { 
     try { 
      return GoogleAuthUtil.getToken(mActivity, mEmail, mScope); 
     } catch (GooglePlayServicesAvailabilityException playEx) { 
      // GooglePlayServices.apk is either old, disabled, or not present. 
      mActivity.showErrorDialog(playEx.getConnectionStatusCode()); 
     } catch (UserRecoverableAuthException userRecoverableException) { 
      // Unable to authenticate, but the user can fix this. 
      // Forward the user to the appropriate activity. 
      mActivity.startActivityForResult(userRecoverableException.getIntent(), mRequestCode); 
     } catch (GoogleAuthException fatalException) { 
      onError("Unrecoverable error " + fatalException.getMessage(), fatalException); 
     } 
     return null; 
    } 

這裏是我的範圍:audience:server:client_id:MY_CLIENT_ID.apps.googleusercontent.com

當我嘗試,我得到以下異常:

08-16 17:22:08.471: E/TokenInfoTask(16546): Exception: 
08-16 17:22:08.471: E/TokenInfoTask(16546): com.google.android.gms.auth.GoogleAuthException: Unknown 
08-16 17:22:08.471: E/TokenInfoTask(16546):  at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source) 

回答

3

你應該使用谷歌2月份發佈的Google+登錄功能,因爲這會讓您獲得跨客戶端授權並訪問更多可用於個性化設置的數據你的應用。在幕後,此授權庫使用OAuth 2連接到Google服務。

一些資源,讓你開始:

+0

感謝您的建議,但使用Google+登錄,用戶必須點擊一個按鈕,而與谷歌播放服務認證他不' t需要... – juzamn

+0

從何時起,GoogleAuthUtil.getToken()方法開始拋出一個帶有消息的GoogleAuthException「 BadUsername「用於未在設備上註冊的電子郵件,而不是以前的異常IllegalArgumentException,並顯示消息」Non existing account'email_address'「? http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html#getToken(android.content.Context,java.lang.String,java.lang.String) – toobsco42

+0

請求用戶信息.profile和plus.login將導致此異常。請從您的請求中移除userinfo.profile範圍。 – class