2011-09-28 132 views
1

我希望人们能够从我的应用程序从他们的Facebook帐户中删除我的应用程序。Facebook PHP SDK清除会话数据?

这很容易与做:

$fb->api('/'.$fbUid.'/permissions','DELETE'); 

的问题是,如果用户加载在我的网站其他页面Facebook的PHP SDK似乎仍然认为用户“登录”。我认为这是因为facebook php sdk(v 3.1.1)将用户数据存储在会话中。

是否有清除这些会话的好方法? (我的意思是一种最佳实践方式,当然我可以循环会话并删除所有以“fb_”开头的)。

有一个$ fb-> clearAllPersistentData(),但它是受保护的。

或者我真的不得不将用户重定向到logoutUrl来做到这一点?

编辑:重定向到logoutUrl没有任何区别,我仍然有会话变量。

回答

4

您可以使用session_destroy(),但这会破坏所有会话数据,包括您自己的应用程序可能正在使用的所有会话数据。

另一种解决方案是扩展类并通过自己的包装函数公开受保护的方法。

但是我同意这个问题稍微有些破,我有几个修补程序,我会在本周推到sdk。

+0

太棒了!在此期间,我只是将clearAllPersistentData()中的protected保护给public。 – Martin

+0

添加了此https://github.com/facebook/php-sdk/commit/4b0e00096c01a959c3f7d9b0655856c17c46383f –