Meteor Facebook无法授权

时间:2014-08-22 19:46:03

标签: javascript html facebook meteor

我的问题是我无法配置服务器以正常使用Facebook。 前段时间我有{{> loginButtons}}并且在首次登录或重置后我不得不将apId和secret复制并粘贴到弹出窗口,现在我正在尝试更多地自定义这些按钮而且我被卡住了单击FB按钮(Windows popus)后出现“无效的应用程序ID:未定义”,我甚至可以在URL中看到我有未定义的ID https://www.facebook.com/dialog/oauth?client_id=undefined&redirect_uri=http://localhost:3000/_oauth/facebook?close&display=popup&scope=email&state=1111111111111111

这是一个代码,也许你可以帮助我或给我一些其他方法来做到这一点。 基本上我想摆脱普通用户的注册表格,并保留登录Facebook,Twitter等的字段。

我的HTML:

<div id="login-buttons">
    <div class="login-text-and-button">
      <div class="login-button single-login-button" id="login-buttons-facebook">
        <div class="login-image" id="login-buttons-image-facebook"></div>
        <span id="sign-in-facebook" class="text-besides-image sign-in-text-facebook">Sign in with Facebook</span>
      </div>
      <br>
    </div>
</div>

和我的JS方法:

"click #sign-in-facebook": function(e, tmp) {
        Meteor.call('facebookLogin', function (error, result) {});
        if (Accounts.loginServicesConfigured()) {
            Meteor.loginWithFacebook({
                requestPermissions: ['email']
            }, function(err) {
                if (err) {
                    console.log("error when login with facebook " + err);
                } else {
                    console.log("login with facebook succeeded");
                }
            });
        };
    }

//这是在服务器端

facebookLogin:function(){
    ServiceConfiguration.configurations.remove({
        service: "facebook"
    });
    ServiceConfiguration.configurations.insert({
            service: "facebook",
            appID: "1111111111",
            secret: "1111111111"
        });
}

因为你可以看到所有数据都在数据库中

meteor:PRIMARY> db.meteor_accounts_loginServiceConfiguration.find()
    { "service" : "facebook", "appID" : "1111111111", "secret" : "211111111", "_id" : "111111" }

2 个答案:

答案 0 :(得分:1)

这看起来有点不规律。你只应该进入一次facebook configs。

Meteor.startup(function() {

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

    ServiceConfiguration.configurations.insert({
        service: "facebook",
        appID: "1111111111",
        secret: "1111111111"
    });

});

您的登录点击处理程序:

"click #sign-in-facebook": function(e, tmp) {
    Meteor.loginWithFacebook({
            requestPermissions: ['email']
    }, function(err) {
        if (err) {
            console.log("error when login with facebook " + err);
        } else {
            console.log("login with facebook succeeded");
        }
    });
}

答案 1 :(得分:0)

尝试使用这两个键:clientId和appId(前段时间将其重命名为clientId),如下所示:

git config --help