http://developers.facebook.com/docs/howtos/login/server-side-login/
我在第3步.我在localhost上进行开发,然后我将发布到具有不同App ID的Azure网站.我想首先在localhost上工作. (我还没有尝试使用非localhost域.)
在我的Facebook App配置页面上,我设置了几个相关字段:
站点URL:http:// localhost:8052 /(添加空格以允许子集到Stack Overflow)
应用程序域:localhost
如果没有设置Facebook代码,main.PHP会重定向到登录页面.这很好用.
<head> <?PHP if(!isset($_SESSION['code'])) { echo ('<Meta http-equiv="REFRESH" content="0;url=/login.PHP" />'); } ?> </head>
login.PHP使用从其示例中复制的代码重定向到Facebook的登录页面.
<?PHP include '/lib/url.PHP'; $app_id = "XXXXX"; $app_secret = "XXXXX"; $my_url = CreateUrlForPage('welcome.PHP'); session_start(); $code = ''; if(!isset($_REQUEST["code"])) { $_SESSION['state'] = md5(uniqid(rand(),TRUE)); // CSRF protection $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state=" . $_SESSION['state']; echo $my_url.'<br/>'; echo $dialog_url.'<br/>'; echo("<script> top.location.href='" . $dialog_url . "'</script>"); } ?>
很明显,我已经混淆了上面的App ID.
我的“CreateUrlForPage”函数生成的URL与facebook登录URL一样正常:
http://localhost:8052/welcome.PHP https://www.facebook.com/dialog/oauth?client_id=XXXX&redirect_uri=http%3A%2F%2Flocalhost%3A8052%2Fwelcome.PHP&state=XXXX
(再次,这里有一些混淆.真正的值看起来没问题.第一个是整数,第二个是长十六进制字符串.)
当我导航到http:// localhost:8052 / login.PHP时,页面重定向到Facebook并发出完全无用的错误:“发生错误.请稍后重试.”
我查看了Stack Overflow上的其他一些帖子,但是他们没有解决我的问题.
我得到的错误看起来就像这里描述的错误:
Facebook application login error on localhost
提供的建议是设置域名和站点URL,我已经完成了.
这个问题还有一个链接:Running Facebook application on localhost
他们再次建议使用网站网址.他们还谈论app-canvas,这不是我正在使用的东西,我不知道它与登录有什么关系.
解决方法
http://gamma.owlweb.com.ua/index.php/?route=account/register/fb
<?PHP $app_id = "xxx"; $app_secret = "xxx"; $my_url ="http://localhost:3080/abc.PHP"; session_start(); $code = ''; if(!isset($_REQUEST["code"])) { $_SESSION['state'] = md5(uniqid(rand(),TRUE)); // CSRF protection $dialog_url = "https://www.facebook.com/dialog/oauth?client_id=".$app_id ."&redirect_uri=".urlencode($my_url) ."&state=".$_SESSION['state']; echo $my_url.'<br/>'; echo $dialog_url.'<br/>'; echo("<script> top.location.href='" . $dialog_url . "'</script>"); } ?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。