我正在尝试登录 facebook,这是我的代码:
<body>
<form id="form1" runat="server">
<div id="fb-root"></div>
<script>
(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=221385331301885";
fjs.parentNode.insertBefore(js, fjs);
} (document, 'script', 'facebook-jssdk'));
</script>
<div class="fb-login-button" data-show-faces="false" data-width="300"></div>
<script>
window.fbAsyncInit = function () {
FB.init({
appId: '221385323101885', // App ID
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
xfbml: true // parse XFBML
});
// Additional initialization code here
};
// Load the SDK Asynchronously
(function (d) {
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) { return; }
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
} (document));
</script>
</form>
</body>
当我运行此代码时,我收到此错误消息:
我尝试使用 https://developers.facebook.com/tools/debug 在窗口中调试 URL但是它一直告诉我 URL 不可抓取:/如果你想尝试调试它,URL 在下面:
https://www.facebook.com/dialog/oauth?api_key=221385331301885&app_id=221385331301885&client_id=221385331301885&display=popup&domain=127.0.0.1&locale=en_GB&origin=1&redirect_uri=https%3A%2F%2Fs-static.ak.fbcdn.net%2Fconnect%2Fxd_proxy.php%23cb%3Df4b3e7f08%26origin%3Dhttp%253A%252F%252F127.0.0.1%253A81%252Ff22a06766%26relation%3Dopener%26transport%3Dpostmessage%26frame%3Df23609e538&response_type=token%2Csigned_request&sdk=joey
我更改了主机文件以添加 127.0.0.1 localhost.local 的条目以匹配我的 Facbook 应用程序设置。以下是我的主机文件和我的 Facebook 应用程序设置的屏幕截图:
如您所见,hosts 文件和 facebook 应用程序设置中的域是相同的。关于如何解决这个问题的任何想法?谢谢
最佳答案
我想我发现了你的问题,但我不确定为什么会这样......
我试图完全按照您的方式进行操作,但我使用的是 Mobile Web http://localhost Website 选项(手机是空的)。一切正常。
当我将它从Website 切换到Mobile Web 时,我遇到了与您报告的相同的错误。 您必须使用移动选项吗?
此外,您正在加载 fb sdk 两次,不知道为什么,第一次使用此来源:
//connect.facebook.net/en_GB/all.js#xfbml=1&appId=221385331301885
然后再次使用此来源:
"//connect.facebook.net/en_US/all.js"
有什么意义?简单地这样做有什么问题:
<div id="fb-root"></div>
<div class="fb-login-button" data-show-faces="false" data-width="300"></div>
<script>
window.fbAsyncInit = function () {
FB.init({
appId: '221385323101885', // App ID
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
xfbml: true // parse XFBML
});
// Additional initialization code here
};
// Load the SDK Asynchronously
(function (d) {
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) { return; }
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
} (document));
</script>
希望能解决您的问题。
关于Facebook Javascript SDK 本地主机错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10007257/