我正在Ionic 2
使用GooglePlus Authentication。一切都适用于iOS
。对于Android
我按如下方式构建我的应用:
ionic build android
对于Android
版本,我需要一个用于Google身份验证的SHA1
密钥库。
我有Macintosh HD/Users/myname/.android/debug.keystore
,因此根据these说明,我使用(默认密码' android
')生成密钥库:
keytool -exportcert -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
输出看起来正确。我按照上述说明使用SHA1
来Android Credentials
:
但是当我尝试登录时,我得到: error = 12501
来自here我认为这与Google凭据中的SHA1
与应用的Android版本的SHA1
相匹配无关。
问题
我的SHA1
版本使用的Android
是什么?如何检查它是否与上面为凭证生成的匹配?
更新
阅读以下内容:
我理解,对于Android
,我们需要将SHA1
放在此处:
然而,在尝试此操作后,我仍然遇到12501
错误。
更新
我也尝试过关注these instructions,特别是Android Setup
,但我认为它已经过时了。但他们确实说了以下几点:
如果您收到错误12501 - 用户已取消,则表示您使用了错误 在iOS / Android配置步骤中捆绑ID。确保你 正在使用正确的,通过在您的设置中设置所需的捆绑ID config.xml,并在设备设置期间使用该ID
从上图中可以看出,Package name
与Bundle ID
中的config.xml
相匹配。
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.ionicframework.thewhozooXXXX" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
答案 0 :(得分:1)
解
你需要使用Web Client ID
而不是Android Client ID
用于Android(Go Figure!)。这对我有用。
代码:
GooglePlus.login({
'webClientId':'XXXXXX.apps.googleusercontent.com',
'offline': true
}).then(googleData => {
但我不明白,iOS
适用于iOS Client id
。所以没有一致性。
<强>更新强>
这似乎适用于使用Android
的{{1}}。如果您查看返回值Web client
:
googleData
答案 1 :(得分:0)
对于将来的参考,所以它可能会对像我这样的人有所帮助:
我的问题是范围参数:
{
'scopes': 'email https://www.googleapis.com/auth/admin.directory.resource.calendar',
'webClientId': 'XXXXXXXXXXX',
'offline': true
}
SPACE分隔列表(我使用逗号分隔)。逗号分隔(或空格分隔以外的任何分隔)将导致12501。