#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) });
}