用facebook

时间:2016-01-21 14:33:14

标签: facebook twitter-bootstrap meteor meteor-useraccounts

我有一个流星应用程序,包含:

useraccounts:bootstrap; 
service-configuration; 
accounts-facebook; 

facebook方面配置为允许来自localhost的请求。当使用来自atForm的facebook的注册/登录时,会出现一个弹出窗口

修改

弹出窗口实际上不是空的,但会显示一条消息“登录完成,点击关闭”但快速关闭,因为这是我在facebook方面的配置方式。

控制台记录错误:

Exception while invoking method 'login' undefined

编辑

这是服务conf:

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

修改

以下是客户端代码:

Template.atForm.events({
    'click #at-facebook': function(event) {
        console.log("facebook click");
        Meteor.loginWithFacebook({
          requestPermissions: ['email', 'user_friends']
          }, function (err) {
          if (err)
            Session.set('errorMessage', err.reason || 'Unknown error');
        });
    }
});

修改 在Facebook上注册时,用户创建的内容如下:

{ createdAt: Thu Jan 21 2016 16:00:08 GMT+0100 (CET),
I20160121-16:00:08.108(1)?   _id: 'Kgs3WswMdB9hsxMfp',
I20160121-16:00:08.108(1)?   services: 
I20160121-16:00:08.108(1)?    { facebook: 
I20160121-16:00:08.108(1)?       { accessToken: 'removed',
I20160121-16:00:08.108(1)?         expiresAt: 1458562023670,
I20160121-16:00:08.109(1)?         id: 'removed',
I20160121-16:00:08.109(1)?         email: 'removed',
I20160121-16:00:08.109(1)?         name: 'Mathieu Kudla',
I20160121-16:00:08.109(1)?         first_name: 'Mathieu',
I20160121-16:00:08.110(1)?         last_name: 'Kudla',
I20160121-16:00:08.110(1)?         link: 'https://www.facebook.com/app_scoped_user_id/removed/',
I20160121-16:00:08.110(1)?         gender: 'male',
I20160121-16:00:08.110(1)?         locale: 'fr_FR',
I20160121-16:00:08.110(1)?         age_range: [Object] } } }

这似乎表明facebook握手成功了?

导致该错误的原因是什么?谢谢:))

1 个答案:

答案 0 :(得分:0)

好的,我有点解决了。

我深入研究了登录尝试,发现oauth服务没有与用户正确配对。我不知道为什么会这样,或者如果有更好的解决方案,但我添加了一行:

if (user.services) { var service = _.pairs(user.services)[0]; }

到我的onCreateUser挂钩并在返回之前正确添加用户对象。它似乎已经完成了诀窍,但我不知道第一次我做得不好......