做了一个快速的静态登陆页面后,我们注意到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>发布于 2014-04-09 01:54:12
你是否在developer.facebook.com上创建了一个Facebook应用程序,并在脚本中输入了应用程序ID和密匙?
另外,不要忘记将您的URL从测试更改为开发服务器--我曾被捕获过一次
编辑
看起来,通过右键单击并查看源代码,您刚刚复制和粘贴了输出HTML。这与运行时的情况不一样,将使用更多的信息创建代码段。
搜索生成文件中的代码,然后使用它
发布于 2014-04-09 04:24:48
如果你能用一种非常简单和首选的方式做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/
https://stackoverflow.com/questions/22951384
复制相似问题