问题描述
我在 Cordova google-plus 插件中遇到了一个非常流行的问题。问题是,每当我包含此 'webClientId': '******.apps.googleusercontent.com',
时,我都会收到 error: 10
,如果没有包含 webClientId
,我会收到不提供 tokenID 但我需要 tokenID 的数据所以我将在 Google Developers 控制台中生成的 client ID 作为值传递给 webClientID
。
我看到文章说 SHA1 可能是错误的,所以我查了一下,结果是 app-debug.apk SHA-1 和项目中的Google Developers 控制台 SHA-1 相同。
我已按照 this article 进行实施,但我尚未将该项目包含在 firebase 中。我知道我的客户 ID 有问题,但我无法弄清楚。我试过重新安装插件,但没有用。
注意:如果作为第一个参数传递给 googleplus.login()
的空对象返回的数据没有任何错误。
loginGoogle() {
console.log('clicked')
window['plugins'].googleplus.login(
{
'webClientId': '*******.apps.googleusercontent.com',},function (obj) {
console.log('data:',obj);
},function (msg) {
console.log('error: ' + msg);
}
);
}
解决方法
Google Console 已更改其获取 CLIENT_ID 的过程。我们需要创建一个“OAuth 同意屏幕”,然后创建 credentials
,您将在其中获得 CLIENT_ID。现在我的问题的答案是在创建凭据时,作为第一步,将有一个下拉列表,用于选择 application type
并为 Cordova、Ionic 选择 web
(我不确定对于 react-native 和 native Android)并完成该过程。
然后您将获得一个 CLIENT_ID 又名 WEB_CLIENT_ID,但如果您在 application type
中选择 Android 并且使用相同的 CLIENT_ID 又名 ANDRIOD_CLIENT_ID。问题在于选择application type
。我得到了人们只是提到 WEB_CLIENT_ID 的答案。