Agregué servicios de nube iónica a mi aplicación y quiero usar la autenticación nativa de FaceBook.
import { FacebookAuth } from '@ionic/cloud-angular'; this.facebookAuth.login()Cuando ejecuto esta función en un teléfono Android, como era de esperar, aparece el mensaje de Facebook para preguntar si mi aplicación puede obtener permisos para leer el perfil y el correo electrónico. Cuando hago clic en SÍ, la función devuelve un objeto ERROR vacío:
Object {}Estoy seguro de que lo estoy captando bien, porque cuando elijo CANCELAR en el indicador de FB, aparece este objeto de error:
Object {errorCode: "4201", errorMessage: "User cancelled dialog"}Nota: estoy usando el inspector web remoto en Chrome para ver la consola completa. Desafortunadamente, como esto requiere un dispositivo real, no puedo Plunker esto. Sin embargo, espero que alguien tenga una idea de por qué esto podría suceder. He seguido todos estos pasos, incluida la configuración de desarrollador de FB, el hash y la configuración de ionic.io.
Lo hice y funciona bien en el dispositivo real. Si tiene alguna pregunta, comente a continuación.
Juega con Git Repo
aplicación.módulo.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 { }inicio.html
<button ion-button block type="button" (click)="fbLogin()">Fb Login</button>casa.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(); } }Ok, es bastante tonto, pero la primera causa raíz fue que el usuario de FB con el que intentaba iniciar sesión no estaba registrado como probador. Aparentemente, en ese caso, el complemento devuelve un error vacío.
Después de agregar como probador, recibí un error real (el manifiesto de Andoird no permite el acceso a Internet). Después de solucionar ese problema, nuevamente obtengo un error vacío.
Entonces, mi suposición es que algunos de los errores devueltos por FB no están bien comunicados por el complemento y, por lo tanto, cualquier otro error de FB puede estar causando este problema.
ACTUALIZACIÓN 23/04: parece haber un cambio desde el lado de FB, ahora la pantalla de inicio de sesión de FB no tuvo éxito pero dio un error sobre la clave hash. Después de solucionar ese problema, el inicio de sesión de FB está funcionando ahora.