Facebook登录弹出框空白

时间:2014-04-09 01:51:32

标签: javascript facebook api facebook-graph-api facebook-javascript-sdk

制作快速静态登录页面后,我们注意到facebook登录无效。它只是弹出一个框,然后在允许登录或拒绝之前自动重定向。

请查看http://www.gemroc.com/landing/index.html

这是我们的目标网页。你可以看到我在那里遇到的问题。

同样,我们将fb源代码复制到此页面中。我猜这就是问题所在。

这是我怀疑可能是因为它是从源代码中复制的原因。

<script type="text/javascript">     
(function(d){
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];     
    if (d.getElementById(id)) {return;}
        js = d.createElement('script'); js.id = id; js.async = true;
        js.src = "https://connect.facebook.net/en_US/all.js";
        ref.parentNode.insertBefore(js, ref);
    }(document));

window.fbAsyncInit = function() {
    FB.init({
        appId      : 'OurAppID', 
        status     : true, 
        cookie     : true,
        xfbml      : true  
    }); 
    Event.observe(window, 'load', function() {
        Event.fire(document, 'fbinit:ready',{});
    });
};  
</script>
<script type="text/javascript">
Event.observe(document, 'fbinit:ready', function(event){
    mpFBConnect.init("https://www.facebook.com/dialog/oauth?client_id=430913623675901&redirect_uri=http%3A%2F%2Fwww.gemroc.com%2Ffacebookconnect%2Flogin%2F&state=a728aaf88633a0e24b793630a1b01194&scope=email%2Cpublish_stream&display=popup");
});

mpFBConnect.facebookconnectform = '<form id="facebookconnectform" method="post" action="https://www.gemroc.com/facebookconnect/login/">' +
    '<input type="hidden" name="return" value="aHR0cDovL3d3dy5qamV3ZWwuY29tLw==" />' +
    '<input type="hidden" name="fbconnecttype" value="form" />' +
    '</form>';
</script>

2 个答案:

答案 0 :(得分:1)

您是否在developer.facebook.com上通过Facebook创建了一个应用,并在您的脚本中输入了您的应用ID和密钥?

也不要忘记将您的网址从测试服务器更改为开发服务器 - 我已经被抓住了一次

修改

通过右键单击并查看源代码,您似乎只是复制并粘贴了输出HTML。这与运行时不同,将使用更多信息创建代码段。

搜索生成文件中的代码并改为使用

答案 1 :(得分:0)

如果你能以一种非常简单和首选的方式进行 Facebook登录,你会做出如此复杂的流程吗?

window.fbAsyncInit中,在FB.init代码之后,写下这个 -

FB.login(function(response) {
   if (response.authResponse) {
       // The person logged into your app
   } else {
       // The person cancelled the login dialog
   }
});

就是这样。如果您甚至不想每次都登录,并在会话中自动登录用户,您可以在此处使用以下代码:https://developers.facebook.com/docs/facebook-login/login-flow-for-web/