我在本地主机中创建了一个小应用程序。
我已经检查了wieshark:
请求是:
HTTP GET: http ://www.facebook.com/dialog/oauth?api_key=APPID&app_id=APPID&channel_url=http%3A%2F%2Fstatic.ak.facebook.com%2Fconnect%2Fxd_arbiter.php%3Fversion%3D9%23cb%3Df17ca8709c %26origin%3Dhttp%253A%252F%252F127.0.0.1%253A8080%252Ffd1147b44%26domain%3D127.0.0.1%26relation%3Dparent.parent&client_id=121312018012923&display=none&domain=127.0.0.0&1&redirect_uri=en 2F%2Fstatic.ak.facebook.com%2Fconnect%2Fxd_arbiter.php%3Fversion%3D9%23cb%3Df164e7a46c%26origin%3Dhttp%253A%252F%252F * 127.0.0.1%253A8080% *252Ffd1147b44%261%3D127.0.0. %26relation%3Dparent%26frame%3Df216567208&response_type=token%2Csigned_request%2Ccode&sdk=joey
Facebook 正在发送 200 OK:
[截断] 应用程序配置不允许给定 URL。:应用程序的设置不允许一个或多个给定 URL。它必须与网站 URL 或画布 URL 匹配,或者该域必须是一个 o 的子域
我不明白问题是什么:我的本地主机上运行了 XAMPP。在画布和站点 URL 中,我有:http ://mytestdomain.com:8080 。
在我的 /etc/hosts 机器中,我有 127.0.0.1 mytestdomain.com。
我正在运行的实际代码
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId: 'APPID', status: true, cookie: true, xfbml: true});
};
(function() {
var e = document.createElement('script'); e.async = true;
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
document.getElementById('fb-root').appendChild(e);
}());
FB.getLoginStatus(function(response) {
if (response.status == "connected") {
alert("yes I am in ");
}
else{
alert(" you need to login to facebook:");
}
});
function checkFacebookLogin() {
alert("hai");
}
</script>
<p id="fb_login_button_1"><fb:login-button onlogin="checkFacebookLogin();" size="medium" scope="email">Sign in using Facebook</fb:login-button></p>
</body>