2009-03-05 82 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插件。