我已将离子云服务添加到我的应用中,并希望使用原生FaceBook身份验证。
import { FacebookAuth } from '@ionic/cloud-angular';
this.facebookAuth.login()
在Android手机上运行此功能时,正如预期的那样,我得到Facebook提示,询问我的应用是否可以获得阅读个人资料和电子邮件的权限。当我单击YES时,该函数返回一个空的ERROR对象:
Object {}
我确定我正确抓住它,因为当我在FB提示符上选择CANCEL时,我收到此错误对象:
Object {errorCode: "4201", errorMessage: "User cancelled dialog"}
注意:我在chrome中使用远程Web检查器来查看完整的控制台。不幸的是,因为这需要一个真正的设备我不能偷看这个。但是,我希望有人知道为什么会这样。我已经遵循了所有these步骤,包括FB开发人员设置,哈希和ionic.io设置。
答案 0 :(得分:1)
我已经做到了,它在真实设备上正常工作。如果您有任何疑问,请在下方发表评论。
播放 Git Repo
<强> app.module.ts 强>
import { CloudSettings, CloudModule } from '@ionic/cloud-angular';
const cloudSettings: CloudSettings = {
'core': {
'app_id': 'd32c02d2'
},
'auth': {
'facebook': {
'scope': ['public_profile', 'email']
}
}
};
@NgModule({
declarations: [
],
imports: [
CloudModule.forRoot(cloudSettings)
],
bootstrap: [IonicApp],
entryComponents: [
],
providers: [
]
})
export class AppModule { }
<强> home.html的强>
<button ion-button block type="button" (click)="fbLogin()">Fb Login</button>
<强> home.ts 强>
import { Component } from '@angular/core';
import { FacebookAuth, User } from '@ionic/cloud-angular';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
constructor(public facebookAuth: FacebookAuth, public user: User) {
}
fbLogin() {
this.facebookAuth.login();
}
}
答案 1 :(得分:1)
好吧,这很愚蠢,但第一个根本原因是我试图登录的FB用户没有注册为测试人员。显然,在这种情况下,插件会返回一个空错误。
作为测试人员添加后,我收到了一个真正的错误(Andoird manifest dod不允许上网)。在解决了这个问题之后,我又一次出现了一个空错误。
所以我的假设是FB返回的一些错误没有被插件很好地传达,因此任何其他FB错误都可能导致这个问题。
更新23/04:FB方面似乎有变化,现在FB登录屏幕没有成功,但是给出了关于散列键的错误。修复该问题后,FB登录现在正在运行。