我在本地主机中创建了一个小应用程序。
我已经检查了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.1&locale=en_US&origin=1&redirect_uri=http%3A%2F%2Fstatic.ak.facebook.com%2Fconnect%2Fxd_arbiter.php%3Fversion%3D9%23cb%3Df164e7a46c%26origin%3Dhttp%253A%252F%252F * 127.0.0.1%253A8080% * 252Ffd1147b44%26domain%3D127.0.0.1%26relation%3Dparent%26frame%3Df216567208&安培; RESPONSE_TYPE =记号%2Csigned_request%2Ccode&安培; SDK =乔伊< / p>
Facebook正在发送200 OK:
[truncated]应用程序配置不允许使用URL:应用程序的设置不允许使用一个或多个给定的URL。它必须与网站URL或Canvas URL匹配,或者域必须是一个o
的子域
我没有得到问题所在: 我在我的localhost上运行XAMPP。 在画布和网站网址中,我有: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>
答案 0 :(得分:1)
您在Visual Studio中调试的地址需要与您的https://developers.facebook.com/“网站网址”完全匹配。我建议使用IIS进行调试,并手动创建一个与您的站点URL匹配的虚拟目录。 (另外,您不必指定一个端口,如果它不是默认的80或443端口,我发现它有时会引起问题)
就我的问题而言,我在调试时遇到了“http://www.domain.com/App”,但我的Facebook开发者网站网址是“http://domain.com/App”。我也看到人们将斜杠“/”关闭或者使用“https”而不是“http”。
最重要的是,您需要确保您的网址与点匹配。 Facebook似乎非常挑剔。
答案 1 :(得分:0)
在Facebook的应用配置中,您是否将应用网址指向您的本地主机?
答案 2 :(得分:0)
据我所知。 Facebook不再允许在localhost中测试你的应用程序。
答案 3 :(得分:0)
我认为您可能在多个网站上使用相同的应用和密钥。 您需要更改您的站点的应用程序和密钥,您可以从中生成密钥 应用facebook developer
对我而言,这对你有所帮助
答案 4 :(得分:0)
尝试在本地服务器上设置虚拟主机。您可以创建一个虚拟URL。如果您然后将Facebook应用中的URL设置为虚拟URL,我相信您将能够从本地服务器进行一些Facebook调用,但是如果我没记错,您仍然无法发布到图表。
答案 5 :(得分:0)
另一种可能性:在我的情况下,我有多个WP插件/ scrips调用FB代码,并且在本地和生产方面有不同的AppID - 在一个阶段我忽略了本地/生产配置之间的冲突。
答案 6 :(得分:-1)
看一下以下内容,然后尝试:
就是这样!