2012-07-25 78 views
2

我在本地主机中创建了一个小应用程序。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> 

回答

0

做了你的应用程序URL指向本地主机?

+0

谢谢Zurek的回应。是的,我有它指向本地主机。 – 2012-07-25 05:33:49

+0

我尝试了2种组合:网站网址和画布url = http:// localhost:8080 2)网站网址和画布网址= http://mytestapp.com:8080。在我的主机文件中,我有mytestapp 127.0.01 – 2012-07-25 05:34:03

+0

太棒了,很高兴它的工作,将问题标记为回答,欢呼 – 2012-07-25 05:39:31

0

从我所知道的。 Facebook不允许在本地主机上测试您的应用程序。

+3

是的,只需将网址指向http:// localhost:3000/ – 2012-07-25 05:32:25

+0

谢谢莫斯曼从我在网上看到的和堆栈溢出问题I认为这是支持Zurek – 2012-07-25 05:37:40

1

您在Visual Studio中调试到的地址需要完全匹配您的https://developers.facebook.com/“网站URL”。我会建议使用IIS进行调试,并手动创建一个虚拟目录以匹配您的网站URL。 (另外你不必指定一个端口,如果它不是默认的80或443端口,我发现它会引起问题)

在我的这个问题中,我有一个“http:/ /www.domain.com/App“,但我的Facebook开发者网站URL是”http://domain.com/App“。我也看到有人离开斜线“/”,或者有“https”而不是“http”。

底线是,你需要确保你的网址匹配点。 Facebook似乎非常挑剔。

0

我想你可能会使用相同的应用程序和秘密密钥为多个网站。 您需要更改应用程序和密钥对你的网站,你可以从 应用facebook developer

对于我这个工作,希望生成您的钥匙,这将有助于你

0

尝试建立本地服务器上的虚拟主机。你可以创建虚拟URL。如果您将Facebook应用程序中的URL设置为虚拟URL,我相信您可以从本地服务器进行一些Facebook调用,但是如果我没有记错,您仍然无法发布到图表。

0

只是另一种可能性:在我的情况下,我有多个WP插件/脚本调用FB代码,并在本地和生产上有不同的AppID - 在一个阶段,我忽略了本地/生产配置之间的冲突。

-1

看看下面,并尝试:

  1. 应用程序域:your-domain.com
  2. 网站与Facebook登录:your-domain.com:8080
  3. 在C:\ WINDOWS \ SYSTEM32 \ DRIVERS \ ETC \主机,添加条目127.0.0.1 your-domain.com
  4. 在浏览器地址栏中输入:http://your-domain.com:8080/appname

这它!

+1

建议** - 1 **这绝对没有增加。 OP *已经*配置了他们的/ etc/hosts。 – michaelb958 2013-06-05 10:35:01

相关问题