如何在爱奥尼亚2应用程序中使用angularfire auth和firebase获取Facebook公共档案数据
我正在尝试从用户的Facebook页面获取数据,这些用户使用Facebook登录/注册我的应用程序,比如生日、图片、性别等。现在我只是向我的数据库添加任意值,但如果可能的话,我想获取他们的性别、个人资料图片url和生日。我这辈子都不知道该怎么做。以下是我目前掌握的情况:如何在爱奥尼亚2应用程序中使用angularfire auth和firebase获取Facebook公共档案数据,facebook,firebase,ionic2,firebase-authentication,angularfire,Facebook,Firebase,Ionic2,Firebase Authentication,Angularfire,我正在尝试从用户的Facebook页面获取数据,这些用户使用Facebook登录/注册我的应用程序,比如生日、图片、性别等。现在我只是向我的数据库添加任意值,但如果可能的话,我想获取他们的性别、个人资料图片url和生日。我这辈子都不知道该怎么做。以下是我目前掌握的情况: loginWithFacebook() { return Observable.create(observer => { if (this.platform.is('cordova')) { Facebook.
loginWithFacebook() {
return Observable.create(observer => {
if (this.platform.is('cordova')) {
Facebook.login(['public_profile', 'email']).then(facebookData => {
console.log(facebookData);
let provider = firebase.auth.FacebookAuthProvider.credential(facebookData.authResponse.accessToken);
firebase.auth().signInWithCredential(provider).then(firebaseData => {
this.af.database.list('users').update(firebaseData.uid, {
name: firebaseData.displayName,
email: firebaseData.email,
provider: 'facebook',
keys: firebaseData.keys,
birthday: firebaseData.birthday,
snapchat: firebaseData.snapchat,
gender: firebaseData.gender,
image: firebaseData.photoURL
});
observer.next();
});
}, error => {
observer.error(error);
});
} else {
this.af.auth.login({
provider: AuthProviders.Facebook,
method: AuthMethods.Popup,
}).then((facebookData) => {
console.log(facebookData);
this.af.database.list('users').update(facebookData.auth.uid, {
name: facebookData.auth.displayName,
email: facebookData.auth.email,
provider: 'facebook',
keys: 5,
birthday: 'w',
snapchat: 'w',
gender: 'male',
image: facebookData.auth.photoURL
});
observer.next();
}).catch((error) => {
console.info("error", error);
observer.error(error);
});
}
});
}
Firebase不支持这一点。您必须对Facebook进行额外的api调用,以使用Facebook访问令牌获取该数据(确保在获取该访问令牌时提示所需的作用域)
ajaxget'https://graph.facebook.com/me?access_token=“+凭证.访问令牌