Android 状态代码12501正在通过google登录进行身份验证
我正在使用下面几行代码来实现G+登录android集成 应用内build.gradle:Android 状态代码12501正在通过google登录进行身份验证,android,google-play-services,social-networking,google-signin,Android,Google Play Services,Social Networking,Google Signin,我正在使用下面几行代码来实现G+登录android集成 应用内build.gradle: 编译'com.google.android.gms:play services auth:8.4.0' 编译'com.google.android.gms:play services plus:8.4.0' 在主要活动中: GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_I
编译'com.google.android.gms:play services auth:8.4.0'
编译'com.google.android.gms:play services plus:8.4.0'
在主要活动中:
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();
我还在应用程序级别添加了“googleservices.gson”文件。
我还制作了web应用程序,并将客户机id用于requestIdToken()参数
requestIdToken(webapp的客户端id)
在写了这段代码之后,我仍然得到状态代码=12501的响应和tokenId=null
我也读过。但找不到任何解决办法 您需要在
google services.json
文件中添加已签名和调试客户端id
的凭据,如下所示:
"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>"
}
}
]
“oauth_客户端”:[
{
“客户id”:“,
“客户类型”:1,
“android_信息”:{
“程序包名称”:“,
“证书\u哈希”:”
}
},
{
“客户id”:“,
“客户类型”:1,
“android_信息”:{
“程序包名称”:“,
“证书\u哈希”:”
}
}
]
这可能是由于Sha-1和Sha-256释放和调试密钥不匹配造成的
将所有三个(Debug:Sha-1、Release:Sha-1和Sha-256)键添加到firebase控制台中,然后重新下载json并替换
这对我来说很好
有时OAuth 2.0客户端ID(Web应用程序密钥)可能不匹配请确保在清单文件中包含以下内容:
<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" />
您可能还需要仔细检查所使用的客户端ID以及包名是否不匹配。我不确定这是否对您有帮助,但我还是会粘贴它。这两个客户端ID是您通过使用调试密钥库和签名密钥库获得的。您可能希望在您的google-services.json文件中同时包含这两个内容。我想知道客户端id是android id还是web应用程序id?请告诉我们。@Akashsingla19和gerard谢谢,您的聊天和上述回答让我找到了我的解决方案;然而,我认为对Web客户端ID有点误解。我不知道Android Studio如何自动生成Web客户端ID,但它与我的google服务控制台中的调试键不同。6月,Android Studio为我的调试密钥自动创建了一个条目,可能与我对Android Studio的升级相对应,所以可能当你们都在处理这个问题时,AS没有自动生成调试密钥。。。继续…我们在中找到了解决方案