Jam*_*mal 78 android google-play-services google-identity
我正在尝试使用新的Google Play服务8.3获取用户令牌ID,并且如我所述,我传递了服务器ID:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.server_client_id))
.requestEmail()
.build();
Run Code Online (Sandbox Code Playgroud)
但是我仍然得到如下结果:
{statusCode=unknown status code: 12501, resolution=null}
Run Code Online (Sandbox Code Playgroud)
并记录在这里 GoogleSignInStatusCodes
登录已被用户取消.即,用户取消了一些登录决议,例如,帐户选择或OAuth同意.
常数值:12501
这不是我的情况,因为我已经选择了一个帐户.任何想法可能是什么原因?
Kai*_*zie 112
我有完全相同的问题,我找到了解决方案.
如果您按照此处的文档操作:https: //developers.google.com/identity/sign-in/android/start-integrating
第一步告诉您创建配置文件(为您创建OAuth 2.0客户端ID并将其插入google-services.json)
然后,它再次说明了创建OAuth 2.0客户端ID,但这次它表示你必须为Web应用程序执行此操作
这是令人困惑的部分!(至少对我而言)因为我只是为Android OAuth创建了客户端ID,而没有为Web应用程序创建一个新的(我认为文档只是冗余或其他)
正如它所说的那样,只有这一个,你必须使用它作为方法requestIdToken或requestServerAuthCode的参数.
忘记在此方法中使用Android OAuth ID,因为这样您将始终获得丑陋的状态代码响应12501.
我认为主要问题是文档对此有点混乱.或者也许是因为你必须创建两个OAuth ID这一事实有点奇怪.
因此,作为摘要,您需要两个OAuth ID,一个用于android,一个用于Web应用程序,您必须将每个ID设置在正确的位置.
Mas*_*ter 19
我正在努力解决这个问题并浪费了将近一周的时间.
这就是我的工作方式.
最后三个步骤6,7和8是您实际需要照顾的.如果您直接运行该项目,那么APK实际上并未使用调试密钥库进行签名,并且Google根本无法识别它.
Rad*_*iet 17
我有同样的问题,在研究解决方案之后,它恢复了server_client_id包含一些不正确的值,或者你的google_services.json没有包含oauth_client,其中client_id已在你的密钥库中注册.
requestIdToken(getString(R.string.server_client_id))
Run Code Online (Sandbox Code Playgroud)
R.string.server_client_id将OAuth 2.0客户端ID用于Web应用程序.Android的 OAuth客户端ID 在google_services.json中使用
通常我们使用2个密钥库,1个使用调试密钥库,1个使用签名密钥库进行发布.因此,如果我们想要在调试和发布模式下,请为Android注册OAuth客户端ID两次,1使用调试密钥库中的SHA1和来自已签名密钥库的1来发布.
我的google_services.json中的一个小例子
"oauth_client": [
{
"client_id": "xxx-client-id.com",
"client_type": 1,
"android_info": {
"package_name": "com.app.android",
"certificate_hash": "xxxhash"
}
},
{
"client_id": "yyy.client-id.com",
"client_type": 1,
"android_info": {
"package_name": "com.app.android",
"certificate_hash": "yyyhash"
}
}
],
Run Code Online (Sandbox Code Playgroud)
只是弄清楚如何解决这个...我在尝试运行我的应用程序的调试版本时遇到此错误...要解决此问题,请在开发者控制台和google-services上为调试应用程序添加凭据以.json.
这为我修好了!
我有同样的问题,我解决了以下解决方案:
requestIdToken方法.Run Code Online (Sandbox Code Playgroud)signingConfigs { release { storeFile file("myreleasekey.keystore") storePassword "password" keyAlias "MyReleaseKey" keyPassword "password" } } buildTypes { release { ... } debug { ... signingConfig signingConfigs.release } }
小智 2
我遇到了同样的问题,我注意到当我server_client_id包含一些不正确的值时,返回了 12501 代码。
由于没有详细的消息,并且该错误代码的文档相当差,我不知道您的问题是否与我的问题有相同的原因。
我的应用程序基于此示例中的 Android 代码(IdTokenActivity 类)。为了使其工作,我还需要将Google 登录集成到我的应用程序中:
server_client_id| 归档时间: |
|
| 查看次数: |
48972 次 |
| 最近记录: |