2

我在本地主机中创建了一个小应用程序。

我已经检查了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>
4

7 回答 7

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”。

底线是您需要确保您的 URL 匹配正确。Facebook 似乎非常挑剔。

于 2012-10-30T03:21:38.763 回答
0

在 Facebook 的应用程序配置中,您的应用程序 URL 是否指向您的本地主机?

于 2012-07-25T05:27:19.727 回答
0

尝试在本地服务器上设置虚拟主机。你做的一个,你将能够创建虚拟 URL。如果您随后将 facebook 应用程序中的 URL 设置为虚拟 URL,我相信您将能够从本地服务器进行一些 facebook 调用,但是如果我没记错的话,您仍然无法发布到图表。

于 2013-03-14T08:04:12.460 回答
0

据我所知。Facebook 不再允许在 localhost 中测试您的应用程序。

于 2012-07-25T05:28:42.937 回答
0

我认为您可能对多个站点使用相同的应用程序和密钥。您需要更改您网站的应用程序和密钥,您可以从应用程序facebook 开发人员生成您的密钥

对我来说,这很有效,希望对您有所帮助

于 2012-12-20T10:54:35.070 回答
0

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

于 2013-04-25T16:19:19.843 回答
-1

看看以下内容,然后尝试:

  1. 应用程序域:your-domain.com
  2. 使用 Facebook 登录的网站:your-domain.com:8080
  3. 在 C:\Windows\System32\drivers\etc\hosts 中,添加条目 127.0.0.1 your-domain.com
  4. 在浏览器地址栏中输入:http: //your-domain.com :8080/appname

而已!

于 2013-06-05T10:16:07.770 回答