E/TokenRequestor:您的OAuth2相关配置错误,请检查。详细错误:UNREGISTERED_ON_API_CONSOLE

Posted

技术标签:

【中文标题】E/TokenRequestor:您的OAuth2相关配置错误,请检查。详细错误:UNREGISTERED_ON_API_CONSOLE【英文标题】:E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE 【发布时间】:2017-10-13 03:21:41 【问题描述】:

我在我的应用中通过 Firebase 使用 Google 登录。但是从 Play 商店运行已发布的应用程序时,它显示以下错误。

E/TokenRequestor: You have wrong OAuth2 related configurations, please check. Detailed error: UNREGISTERED_ON_API_CONSOLE

尽管我已经在 Firebase 和 API 控制台上注册了,但我在 JSON 文件中提到了 ID。以下是 JSON 文件代码


  "project_info": 
  "project_number": "311816357497",
  "firebase_url": "https://mcqsce.firebaseio.com",
  "project_id": "mcqsce",
  "storage_bucket": "mcqsce.appspot.com"
,
"client": [

  "client_info": 
    "mobilesdk_app_id": "1:311816357497:android:494b736XXXX6010b",
    "android_client_info": 
      "package_name": "in.readhere.mcqceit"
    
  ,
  "oauth_client": [
    
      "client_id": "311816357497-9ma34c4qXXXXXXXXXXXXXoep8b24u8g.apps.googleusercontent.com",
      "client_type": 1,
      "android_info": 
        "package_name": "in.readhere.mcqceit",
        "certificate_hash": "6847ce9f7e38dc588d12345678f21c13bd25ea7c"
      
    ,
    
      "client_id": "311816357497-5lbqnmj0bxxxxxxxxxxxxxm4qjfhmq06.apps.googleusercontent.com",
      "client_type": 3
    
  ],
  "api_key": [
    
      "current_key": "AIzaSyC6BGtRfxxxxxxxxxGrwwe_0V3uY9g-0dI"
    
  ],
  "services": 
    "analytics_service": 
      "status": 1
    ,
    "appinvite_service": 
      "status": 2,
      "other_platform_oauth_client": [
        
          "client_id": "311816357497-5lbqnmj0bxxxxxxxxxxxxxxm4qjfhmq06.apps.googleusercontent.com",
          "client_type": 3
        
       ]
     ,
     "ads_service": 
       "status": 2
     
   
 
 ],
 "configuration_version": "1"

以下是应用程序的 API 控制台 firebase console

api console

【问题讨论】:

遇到同样的问题有什么解决办法吗? 您的 firebase 和 google play 控制台帐户不同吗?比请保持相似。 @JosephM 你找到解决办法了吗? 你有解决办法吗? 【参考方案1】:

花了一些时间后,我弄清楚了 Google 登录有什么问题,以及为什么在我进行 Google 登录时会抛出此错误。

所以这是解决方案:在我的情况下,我已经在 google play store 上发布了 apk,并且我选择了 Google play app 签名它会为安全目的创建新的证书密钥库并且旧的密钥库变得无效(https://support.google.com/googleplay/android-developer/answer/7384423) 并且您已在 firebase 中为旧密钥库添加 SHA1,而不是为 Google 创建的新密钥库添加 SHA1。因此,当您尝试通过 google 登录时,它会引发此错误。

所以我想通了:转到您的 Google Play 控制台(https://play.google.com/apps/publish/) > 选择应用程序(在左侧菜单上)> 发布管理 > 应用程序签名

您将看到两个应用签名证书,一个是您上传的旧密钥库证书,另一个是由 google play 创建的新创建的应用签名证书。因此,从 App 签名证书中复制 SHA1 和 SHA256 密钥并将相同的密钥粘贴到 Firebase 控制台 (https://console.firebase.google.com) > 选择您的项目 > 选择应用程序设置 > 常规(选择您的应用程序包)> 并粘贴 SHA1 和 SHA256 密钥,然后保存就完成了。

重新启动应用程序,它会工作。它适用于我的情况;)

【讨论】:

感谢您的回答 非常感谢。我认为您只是为我节省了数小时的调试时间! 你好,我有更多问题,我必须在从 firebase 添加新的 sha-1 和 SHA256 之前删除最后一个 SHA1 我是否必须使用新的 google-services.json 重新编译和构建游戏 @Abojemyeg 我有他们两个,但得到了同样的错误。但是删除旧的后问题就解决了。【参考方案2】:

请检查您的构建变体 [Release|Debug] 。 可能的错误是: 您已经为 DEBUG 添加了 SHA1,并且您构建了发布 apk,反之亦然

【讨论】:

【参考方案3】:

您需要在项目设置中为每个 android 应用添加 SHA 指纹。对于 Firebase,使用您的项目名称编辑以下链接,然后为您的应用添加指纹。

https://console.firebase.google.com/project/YOUR_PROJECT_NAME/settings/general/ 

【讨论】:

是的,我已经为应用程序添加了 SHA 指纹。但它仍然无法正常工作。 @joshiparas 我也有同样的问题。如果找到任何解决方案,请告诉我。 @Maulikpatel 我的 firebase 和 google play 帐户有两封不同的电子邮件。我开始使用相同的电子邮件。我还没有找到任何解决问题的方法。【参考方案4】:

完整的配方:

    作为其他答案,请确保您实际签名的 Android apk 具有与您在 Firebase 项目的 Android 集成部分(您可以下载 google-services.json 的页面)的控制台中指定的相同的 SHA 指纹 最重要的是转到您的 firebase 项目的 Settings(齿轮图标位于左上角的概览右侧。然后切换到 Account Linking 标签。在​​该标签上链接 Google Play到您的项目。

瞧!希望您的问题能得到解决。

【讨论】:

【参考方案5】:

1)只需打开您的 google 控制台帐户的以下链接

https://console.developers.google.com/apis/credentials

2)选择您的项目并完成,现在尝试登录(谷歌会根据您的 FCM 项目自动创建凭据)。

如果您没有在 FCM987654322@

中创建项目,则只需执行 3 步

3) 创建一个新的 Credentials / OAuth 客户端 ID / Android,由 SHA1 指纹和您的 APK 包名称定义。完成

【讨论】:

【参考方案6】:

我有同样的问题,问题是我手机的安全网络。我通过删除安全网络来修复。

【讨论】:

【参考方案7】:

您需要一个 SHA1 指纹用于调试应用,另一个用于发布。在终端中运行此命令以获取发布指纹:

keytool -exportcert -list -v -alias <your-key-name> -keystore <path-to-production-keystore>

您将需要您的密钥库密码(用于生成签名 APK 的密码)。 然后去https://console.firebase.google.com/project/_/settings/general/添加新指纹

我在尝试在已发布的应用上使用 Google 登录时遇到了同样的问题,这解决了问题

【讨论】:

以上是关于E/TokenRequestor:您的OAuth2相关配置错误,请检查。详细错误:UNREGISTERED_ON_API_CONSOLE的主要内容,如果未能解决你的问题,请参考以下文章

Oauth2、范围和用户角色

私有Blogger API调用没有oauth2

oauth2-server-php-docs 概念

OAuth 2.0 授权标头

Spring Security Oauth2 - 向 AccessTokenRequest 添加凭据

是否已经有适用于 Java/Android 的 OAuth2 库? [关闭]