Meteor Facebook 登录 (Meteor.loginWithFacebook) 问题提取 public 个人资料、电子邮件和 user_friends
Meteor Facebook login (Meteor.loginWithFacebook) issue extracting public profile, email and user_friends
正在尝试让 Meteor Facebook 登录正常工作。它的功能完全在于它使用 Facebook API 并从用户帐户请求正确的权限,然后成功登录。
问题是它没有保存权限请求的信息,即使它已被批准,并且在 Meteor.user().services.facebook 中只有基本名称和 ID 可用。这段代码不起作用是因为它没有在登录时保存用户详细信息吗?我找不到详细说明如何保存或提取其他数据的资源。
只是尝试控制台记录数据,看看它是否已在登录时从 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(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");
}
});
}
配置代码:
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);
}
正在尝试让 Meteor Facebook 登录正常工作。它的功能完全在于它使用 Facebook API 并从用户帐户请求正确的权限,然后成功登录。
问题是它没有保存权限请求的信息,即使它已被批准,并且在 Meteor.user().services.facebook 中只有基本名称和 ID 可用。这段代码不起作用是因为它没有在登录时保存用户详细信息吗?我找不到详细说明如何保存或提取其他数据的资源。
只是尝试控制台记录数据,看看它是否已在登录时从 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(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");
}
});
}
配置代码:
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);
}