google plus登录离子返回错误10

时间:2016-11-05 06:52:53

标签: android ionic-framework

我在离子应用程序中使用google plus登录。登录功能正常工作4.2,4.3 Android设备。但它返回错误:5个以上的Android版本中有10个。为此,我正在使用此插件' cordova-plugin-googleplus'。我是通过Cordova CLI和npm

安装的

这是我的代码。

     window.plugins.googleplus.login(
        {},
        function (user_data) {
          alert(JSON.stringify(user_data));   
        },
        function (msg) {
          alert(msg);
        }
    );

我没有从搜索中获得任何有用的解决方案。请帮我解决这个问题。

提前致谢。

4 个答案:

答案 0 :(得分:0)

我在控制台开发人员谷歌(Android)中创建了一个客户端ID。 我分配了在package.json中生成的id,并输入了离子状态reset以重新安装插件

我必须创建debug-signing.propoerties和release-signing.propoerties来签署apk

它在我的案例中解决了我的问题

答案 1 :(得分:0)

使用现有的调试密钥库而不是创建新的...

示例:keytool -exportcert -keystore 〜/ .android / debug.keystore -list -v -alias androiddebugkey

默认密码将是: android

For Fine Fine / For Windows只需替换debug.keystore的路径

谢谢:)

答案 2 :(得分:0)

将所有功劳分配给 ERROR:10 , what am i missing ??

我花了几个小时为我的ionic 3应用程序搜索此问题。我犯的错误是我在使用Android的客户端ID。

离子应用程序应使用 Web客户端ID

答案 3 :(得分:0)

经过大量的故障排除后,我找到了合适的解决方案

有三种可能性

1)可能是您在安装插件期间使用了android客户端ID -在这种情况下,即使您是为android构建的,也应该只使用webclient id -附有屏幕截图

2)您仅应在调试apk的构建过程中使用DEBUG SHA1键,而在生产版本apk的过程中使用PROD SHA1键。

  • 您还可以在Firebase控制台中同时添加DEBUG和PROD SHA1键。请查看附件的屏幕截图以获取更多信息。

Screenshot1

调试SHA1命令: keytool -exportcert -keystore〜/ .android / debug.keystore -list -v -确保〜/ .android / debug.keystore 是android SDK提供的默认密钥库,无需更改。 密码: android

释放SHA1命令: keytool -exportcert -keystore〜/ your-path / playstore-release-sample.keystore -list -v -其中〜/ your-path / playstore-release-sample.keystore是您在生成签名APK时使用的密钥库

3)您应该在Google日志api和Android客户端ID期间传递webclientID。

enter image description here

Webclient ID only - Find in attached screenshot
 **'webClientId': '900429691586-.............apps.googleusercontent.com',**

async login() {
    let params;
    if (this.platform.is('android')) {
      params = {
        'webClientId': '900429691586-.............apps.googleusercontent.com',
        'offline': true
      }
    }
    else {
      params = {}
    }
    this.googlePlus.login(params)
      .then((response) => {
        const { idToken, accessToken } = response
        this.onLoginSuccess(idToken, accessToken);
      }).catch((error) => {
        console.log(error)
        this.globalService.showSimpleAlertMessage('Getting Error :' + JSON.stringify(error), "OK")
      });   }   onLoginSuccess(accessToken, accessSecret) {
    const credential = accessSecret ? firebase.auth.GoogleAuthProvider
      .credential(accessToken, accessSecret) : firebase.auth.GoogleAuthProvider
        .credential(accessToken);
    this.firebaseAuth.auth.signInWithCredential(credential)
      .then((response) => {
        this.storage.set("firebaseSuccessResponse", response)
        this.router.navigate(["/home"]);
        this.globalService.hideLoading();
      })   }   onLoginError(err) {
    console.log(err);   }

希望这一步可以永久解决您的问题