我无计可施,试图让它发挥作用。它曾经是,但由于某种原因,它似乎又坏了。我只是在本地开发时遇到了麻烦。目前还有其他人在 Facebook 本地开发方面遇到类似问题吗?
这些是我的步骤:
- 创建应用
- 在“基本信息”部分下,将“本地主机”设置为域(我也尝试将其留空)
- 将我的网站设置为
http://localhost:8080/
- 确保沙盒模式关闭
- 我的本地服务器正在运行 Javascript
http://localhost:8080/private/
,看起来基本上如下所示。 - 我还尝试使用 localhost 的替代品(如 myapp.com),在映射到 127.0.0.1 的 etc/hosts 文件中定义它,将 App Domain 设置为“myapp.com”并使用站点“http://myapp. com:8080/' 没有运气。
FB.getLoginStatus() 调用没有返回,或者只是偶尔返回。它始终在生产服务器上工作。
function myAppInit() {
console.log("Facebook loaded; initializing sdk.");
//Initialize FB SDK
FB.init({
appId:_FbAppId, //This is valid and matches app ID
cookie:true,
status:true,
xfbml:true,
oauth:true
});
//Query for login status.
FB.getLoginStatus(function(response) {
updateLoginStatus(response); //This is hit randomly
});
//Set our standard callback for auth change status
FB.Event.subscribe('auth.authResponseChange', function(response) {
updateLoginStatus(response); //This is hit randomly
});
}
$(document).ready(function(){
window.fbAsyncInit = myAppInit;
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
}
编辑:检查 FB.getLoginStatus(..) 的响应后,它返回:
应用程序配置不允许给定 URL:应用程序配置不允许一个或多个给定 URL。它必须与 Connect 或 Canvas URL 之一匹配,或者域必须与应用程序的基域之一相同或其子域。