2011-03-26 71 views
0

服務器端流程應該如何用於Facebook應用程序?我的意思是,在每一頁上,我必須得到一個訪問令牌嗎?fb_graph /通用facebook API問題

目前,在我application_controller,我有一個前過濾器,基本上

  1. redirect_to的@ fb_auth.client.web_server.authorize_url(授權應用程序)
  2. @ fb_auth.client.web_server.get_access_token(變訪問令牌)

在每次頁面加載時,必須從Facebook獲取另一個access_token纔會很慢。這通常如何完成?我遇到的問題是要訪問/ me對象,您必須獲取訪問令牌,這需要我在每次加載頁面時都獲取訪問令牌。

回答

0

您不需要在每次頁面加載時都獲得新的訪問令牌。訪問令牌應該適用於很多頁面加載,因爲它需要花費一個多小時才能過期(當獲得令牌時,過期信息可用)。

此外,您不必每次都重定向。將POST發送到您的應用程序(例如,當用戶點擊您的應用程序時),發佈數據中包含signed_request。如果用戶尚未授權您的應用程序,那就是重定向到fb_auth的時間。如果用戶先前已授權您的應用,則access_token應位於signed_request中。

此處瞭解詳情: http://developers.facebook.com/docs/samples/canvas/

0

有可用的樣本程序骨架@https://github.com/michaelbaldry/fb_graph_canvas

時的access_token獲得當一個人第一次訪問上apps.facebook.com/appname/畫布網址一旦這發生了access_token存儲在一個表中,直到下一次用戶直接進入畫布網址時才使用。