Meteor Facebook登录(Meteor.loginWithFacebook)问题提取公开个人资料,电子邮件和user_friends [英] Meteor Facebook login (Meteor.loginWithFacebook) issue extracting public profile, email and user_friends

查看:175
本文介绍了Meteor Facebook登录(Meteor.loginWithFacebook)问题提取公开个人资料,电子邮件和user_friends的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

试图让Meteor Facebook登录工作。它充分利用它使用Facebook API并请求用户帐户的正确权限,然后成功登录。



问题是它不保存请求的权限信息,即使它被批准,只有基本的名称和ID在Meteor.user()。services.facebook中可用。这个代码是否不能正常工作,因为它不会在登录时保存用户的详细信息?我找不到一个资源,详细说明如何保存或提取其他数据。



只需要控制台登录数据即可将其从Facebook中提取出来用户帐户登录。



在Meteor.isClient代码中:

  Template.login.events({
'click#facebook-login':function(event){
Meteor.loginWithFacebook({requestPermissions:['email','public_profile','user_friends' user_likes']},function(err){
if(err){
throw new Meteor.Error(Facebook login failed);
}
console.log .user()。services.facebook.name);
console.log(Meteor.user()。services.facebook.id);
console.log(Meteor.user()。services.facebook .email);
console.log(Meteor.user()。services.facebook.gender);
});
},

'click #logout ':function(event){
Meteor.logout(function(err){
if(err){
throw new Meteor.Error(Logout failed);
}
});
}

配置代码:

  ServiceConfiguration.configurations.remove({
service:'facebook'
});

ServiceConfiguration.configurations.insert({
service:'facebook',
appId:'correctAppID',
secret:'CorrectSecret'
}) ;


解决方案

对于要求的Facebook v2.4 API某些权限,您可以通过进行图形API调用并使用有效的身份验证令牌来请求它们来访问它们。代码如下:

  if(user.hasOwnProperty('services')&& user.services.hasOwnProperty 'facebook')){
var result = Meteor.http.get('https://graph.facebook.com/v2.4/'+ user.services.facebook.id +'?access_token ='+ user.services.facebook.accessToken +'& fields = first_name,last_name,birthday,email,gender,location,link,friends');

console.log(result.data.first_name);
console.log(result.data.last_name);
console.log(result.data.birthday);
console.log(result.data.email);
console.log(result.data.gender);
console.log(result.data.location);
console.log(result.data.link);
console.log(result.data.friends);
}


Trying to get Meteor Facebook login to work. It functions fully in that it uses Facebook API and requests the correct permissions from the users account and then logs in successfully.

The problem is it doesn't save the permission requested information even though its been approved and only the basic name and ID are available in Meteor.user().services.facebook. Is this code not working because it's not saving the users details on login? I can't find a resource that details how to save or extract the other data.

Simply trying to console log the data to see that it's been extracted out of the Facebook user account on log in.

Within Meteor.isClient code:

Template.login.events({
'click #facebook-login': function(event) {
    Meteor.loginWithFacebook({ requestPermissions: ['email', 'public_profile', 'user_friends', 'user_likes']}, function(err){
        if (err) {
            throw new Meteor.Error("Facebook login failed");
        }
        console.log(Meteor.user().services.facebook.name);
        console.log(Meteor.user().services.facebook.id);
        console.log(Meteor.user().services.facebook.email);
        console.log(Meteor.user().services.facebook.gender);            
    });
},

'click #logout': function(event) {
    Meteor.logout(function(err){
        if (err) {
            throw new Meteor.Error("Logout failed");
        }
    });
}

The config code:

ServiceConfiguration.configurations.remove({
    service: 'facebook'
});

ServiceConfiguration.configurations.insert({
    service: 'facebook',
    appId: 'correctAppID',
    secret: 'CorrectSecret'
});

解决方案

For Facebook v2.4 API after you have requested for certain permissions you can then access them by making a graph API call and requesting them with a valid auth token. The code is as follows:

if (user.hasOwnProperty('services') && user.services.hasOwnProperty('facebook')  ) {
        var result = Meteor.http.get('https://graph.facebook.com/v2.4/' + user.services.facebook.id + '?access_token=' + user.services.facebook.accessToken + '&fields=first_name, last_name, birthday, email, gender, location, link, friends');

        console.log(result.data.first_name);
        console.log(result.data.last_name);
        console.log(result.data.birthday);
        console.log(result.data.email);
        console.log(result.data.gender);
        console.log(result.data.location);
        console.log(result.data.link);
        console.log(result.data.friends);
}

这篇关于Meteor Facebook登录(Meteor.loginWithFacebook)问题提取公开个人资料,电子邮件和user_friends的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆