是否可以强制刷新Facebook会话,或者可以在文档中多次调用“FB.init”函数。因为它很长时间以来我不会过多详细说明,但我一直在研究这个问题一段时间,而且它看起来有必要做到这一点。强制刷新Facebook会话
我有一个是每30秒来检查,如果Facebook的用户登录调用的脚本,这是简单地由此实现:
window.fbAsyncInit=function(){
// Initialize the Facebook object
FB.init({
appId:"123",
status:true,
cookie:true,
xfbml:true,
oauth:true
});
// Check the Facebook session status every 30 seconds
setTimeout(function(){
// Pass the Facebook object to the welcome function
fb_welcome(FB);
,30000);
};
在“fbWelcome”功能,我测试一下,看看是否用户使用getLoginStatus
函数通过Facebook登录。依赖于响应,我然后更改页面上的元素。但是,我所做的一件事情就是让所有这些都出错。
如果用户登录到Facebook,那么我使用ajax发送一个请求到我的API,返回Facebook用户的详细信息。该API使用PHP与Facebook API进行通信。如果用户在加载页面时登录到Facebook,则不会有任何问题。但是,如果用户未登录到Facebook,并在我的站点上的另一个选项卡上登录Facebook,则会话不会刷新,并且由于访问令牌和签名请求无效,因此无法访问详细信息。因此,我需要一种方法来使用javascript刷新访问令牌和会话中的签名请求,以确保PHP API可以正确读取它们。
我很确定,通过再次调用FB.init函数,这将解决它,因为它会刷新会话。但是,我不确定我是否打算每页多次调用一次该函数。这是否允许?它会搅乱一切吗?
就在几个注意事项:
- 我知道我可以检索通过JavaScript的SDK和FB.api的用户的详细信息,但是,我不想对具体的原因做
- 我也知道,我可以通过访问令牌和签名的请求到PHP API,但我也不想对特殊原因
任何帮助非常赞赏这样做
我很想知道你是如何做到这一点的;我试图用JS API做同样的事情。 – 2012-04-23 10:12:16
@JamieDexter最后我不得不使用FB.api!我尝试了很多不同的东西,无济于事......我写的每一件破解都不够可靠,最终不值得进一步发展。我不得不整合Facebook API,这显然还没有准备好与其整合,这令人非常恼火。除非与Facebook进行整合是您业务的必要条件,否则请远离它。你永远不能保证它会起作用,即使你的代码是好的! – 2012-04-24 13:53:17