Google Play服务身份验证(oauth 2.0)

时间:2013-08-16 15:41:04

标签: android google-api google-oauth google-play-services google-authentication

我希望使用oauth2 protocole验证我的Android应用程序的用户,以便用户不需要为我的应用程序创建登录名和密码。

为此,我遵循以下教程:http://android-developers.blogspot.fr/2013/01/verifying-back-end-calls-from-android.html

我导入了google play服务sdk示例(在AndroidSDK \ extras \ google \ google_play_services \ samples \ auth中),我更改了范围值。

但是,我无法获得身份验证令牌...我正确配置了我的Google控制台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)

1 个答案:

答案 0 :(得分:3)

您应该使用Google在2月份发布的登录信息,因为这样可以获得跨客户端授权,并可以访问您可用于个性化应用的更多数据。在幕后,此授权库使用OAuth 2连接到Google服务。

一些可以帮助您入门的资源: