ionic2 facebook войти не удалось

#facebook #cordova #angular #ionic2

#Facebook #кордова #угловой #ionic2

Вопрос:

я пытаюсь выполнить вход в свое приложение с помощью facebook, я установил плагин cordova facebook

введите описание изображения здесь

и это мой код, но я получаю сообщение об ошибке при обещании введите описание изображения здесь

это мой код (на самом деле я просто скопировал его из учебника, в котором говорится, что он работает для него)

 import { Component } from '@angular/core';
import { NavController,Platform } from 'ionic-angular';
import {Http, Headers, RequestOptions} from '@angular/http';
import 'rxjs/add/operator/map';


declare const facebookConnectPlugin: any;

@Component({
  templateUrl: 'build/pages/home/home.html',
})
export class HomePage {
  posts:any;
  constructor(public platform: Platform, private navCtrl: NavController,private http: Http)
  { this.platform = platform;
    this.http = http;
  }

  fblogin()
  {
    this.platform.ready().then(() => {
      this.fblogin1().then(success => {
        console.log("facebook data==="   success);
        alert("facebook data==="   success);
        this.http.post('http://localhost/facebook.php',success)
            .map( res =>res.json()).subscribe(data => {
          if(data.msg=="fail")
          {
            console.log('Login failed');
            alert("Invalid username and password");
            return;
          }
          else
          {
            console.log(' login Sucessfully facebook');
          }
        });
      }, (error) => {
        alert(error);
      });
    });
  }
  fblogin1(): Promise<any>
  {
    return new Promise(function(resolve,reject)
    {
      facebookConnectPlugin.login(["email"], function(response)
          {
            alert(JSON.stringify(response.authResponse));
            facebookConnectPlugin.api('/'   response.authResponse.userID   '?fields=id,name,email,gender',[],
                function onSuccess(result)
                {
//alert(JSON.stringify(result));
//console.log(JSON.stringify(result));
                  resolve(JSON.stringify(result));
                },
                function onError(error)
                {
                  alert(error);
                }
            );
          },
          function(error)
          {
            alert(error);
          })
    });
  }

}
  

если кто-нибудь знает другой способ, я хотел бы знать.

Комментарии:

1. вы решили эту проблему? у меня такая же проблема

2. @Kingsleysmon да, я только что опубликовал свое решение

Ответ №1:

я решаю эту проблему, изменяя функцию входа в систему на этот код

 facebookLogin(){

Facebook.login(['email']).then( (response) => {
  let facebookCredential = firebase.auth.FacebookAuthProvider
      .credential(response.authResponse.accessToken);
  var that = this;
  firebase.auth().signInWithCredential(facebookCredential)
      .then((success) => {

        that.userProfile = JSON.stringify(success);

        that.nav.setRoot(HomePage);// after login go to HomePage
      })
      .catch((error) => {
        console.log("Firebase failure: "   JSON.stringify(error));
      });

}).catch((error) => { console.log(error) });
  

}