状态码12501使用Google登录进行身份验证

时间:2016-01-04 21:34:59

标签: android google-play-services social-networking google-signin

我正在使用以下代码行进行G +登录android集成。

在app build.gradle中:

compile 'com.google.android.gms:play-services-auth:8.4.0' compile 'com.google.android.gms:play-services-plus:8.4.0'

在MainActivity中:

 GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                    .requestEmail()
                    .requestIdToken("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.com")
                    .requestProfile()
                    .build();

            AppCompatActivity appCompatActivity = (AppCompatActivity) context;

            googleApiClient = new GoogleApiClient.Builder(context)
                    .enableAutoManage(appCompatActivity, this)
                    .addConnectionCallbacks(this)
                    .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
                    .addApi(Plus.API)
                    .build();

我还添加了" google-services.gson"应用程序级别的文件。 我还创建了web应用程序并使用clientIid来获取requestIdToken()参数。

requestIdToken(webapp的client-id)。

编写此代码后,我仍然在响应中获取状态代码= 12501,而tokenId = null。

我也读过this link。但找不到任何解决方案。

3 个答案:

答案 0 :(得分:11)

您需要在client_id文件中添加已签名和调试google-services.json的凭据,如下所示:

"oauth_client": [
  {
    "client_id": "<your-client-id>",
    "client_type": 1,
    "android_info": {
      "package_name": "<your-package-name>",
      "certificate_hash": "<hash>"
    }
  },
   {
    "client_id": "<your-client-id-2>",
    "client_type": 1,
    "android_info": {
      "package_name": "<your-package-name-2>",
      "certificate_hash": "<hash-2>"
    }
  }
]

答案 1 :(得分:0)

这可能是由于Sha-1和Sha-256发行以及调试密钥不匹配所致。

将所有三个键(调试:Sha-1,发行版:Sha-1和Sha-256)添加到Firebase控制台,然后重新下载json并替换。

对我来说很好。

有时OAuth 2.0客户端ID(Web应用程序密钥)可能不匹配

答案 2 :(得分:0)

确保清单文件中包含以下内容:

<application ...>

    <meta-data
        android:name="com.google.android.gms.games.APP_ID"
        android:value="@string/app_id" />  <!-- if app is a game -->

    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />