我在本地主机中创建了一个小应用程序。Facebook API在尝试使用本地主机运行时发送错误响应
我已经在该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 =乔伊
Facebook正在发送200 OK:
[截断]鉴于网址不被应用程序配置:一个或多个指定的网址不被应用' s设定允许不允许。它必须将网站网址或帆布URL匹配,或域必须是一个的子域Ø
我没有得到什么的问题是: 我有我的本地主机上运行XAMPP。 在画布和网站URL中我有:http://mytestdomain.com:8080。
我的机器在/ etc/hosts我有127.0.0.1 mytestdomain.com。
实际的代码在你的应用程序配置在Facebook的我正在
<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>
谢谢Zurek的回应。是的,我有它指向本地主机。 – 2012-07-25 05:33:49
我尝试了2种组合:网站网址和画布url = http:// localhost:8080 2)网站网址和画布网址= http://mytestapp.com:8080。在我的主机文件中,我有mytestapp 127.0.01 – 2012-07-25 05:34:03
太棒了,很高兴它的工作,将问题标记为回答,欢呼 – 2012-07-25 05:39:31