1

我希望使用 oauth2 协议对我的 android 应用程序的用户进行身份验证,以便用户不需要为我的应用程序创建登录名和密码。

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

我已经导入了 google play service sdk 示例(在 AndroidSDK\extras\google\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)
4

1 回答 1

3

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

一些帮助您入门的资源:

于 2013-08-16T15:57:48.600 回答