我在离子应用程序中使用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);
}
);
我没有从搜索中获得任何有用的解决方案。请帮我解决这个问题。
提前致谢。
答案 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键。
调试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。
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); }
希望这一步可以永久解决您的问题