2009-03-05 86 views
10

我正在使用Facebooker与Rails将我的应用程序连接到Facebook。我可以指导用户完成授权过程以及授予离线访问我的应用程序的过程。离线访问与Facebook合作

我该如何真正去离线访问信息?有没有办法可以请求一个session_key,这个session_key不会过期,只要用户还没有在Facebook上撤销我的应用程序的权限?

任何帮助非常感谢。建议不需要具体的轨道。

回答

0

编辑:apparently,授予“offline_access”仍然给你(并将继续这样做)一个无限的会话密钥。只需保存这个特殊的密钥并将其用于Status.get等的调用即可,请参阅here以获取(PHP)代码示例。

http://wiki.developers.facebook.com/index.php/New_Design_User_Login

许多API调用不再需要 会话密钥

因此,如果您的应用程序被授予offline_access,您可以使用API​​调用listed here没有session_key可以。

而且我们正在改变更多的方法,所以你 不会需要一个会话密钥做 东西,当用户处于离线状态, 喜欢发送通知。

+0

感谢有关不需要会话密钥的功能的信息。不幸的是,我需要的方法需要一个不会过期的session_key。 – Mattew 2009-03-06 23:35:33

+0

那是什么方法? – 2009-03-07 07:00:25

2

一旦您询问并被授予了离线访问权限,您从Facebook获取的HTTP POST参数(fb_sig_session_key)中的会话密钥将不会过期。

你可以通过检查fb_sig_expires参数来检查你是否有这样的密钥,如果这是“0”,那么会话密钥没有过期。

如果你有一个AUTH_TOKEN那么你可以调用的getSession得到会话密钥并检查过期领域:

var auth = _auth.getSession(AuthToken); 
string sessionKey = auth.session_key; 
long uid = auth.uid; 
bool expires = auth.expires > 0; 
0

一旦你从用户的离线访问权限,诀窍是用filter_key调用参数“网络”。

在PHP中,它是:

$feed = $facebook->api_client->stream_get($uid, '', '', '', 20, 'network', ''); 

试试吧,它的工作原理....

1

我只是在我的博客做了一个tutorial关于如何离线访问用户一步步的解释数据。它假定你正在使用RoR和Facebooker插件。