2011-10-12 94 views
2

Facebook應用程序訪問令牌(不是用戶訪問令牌)對於同一個應用程序總是相同嗎?我注意到它在幾天內沒有改變我的應用程序,所以我想知道是否將它變成常量而不是每次需要時都會檢索它是個好主意。Facebook應用程序訪問令牌永遠持續?

https://graph.facebook.com/oauth/access_token? 
    client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET& 
    grant_type=client_credentials 

http://developers.facebook.com/docs/authentication/

(搜索應用程序登錄)

謝謝!

回答

4

據我所知,他們目前不會過期,除非您的應用程序的祕密在應用程序設置中更改。

我絕對推薦緩存它,而不是每次都調用一次新的調用,但可能需要放置一些代碼以自動重新檢索並更新緩存,如果API調用失敗時使用auth令牌錯誤,以防它的變化在未來的某個時刻

我建議像一些邏輯:

try{ 
     //call which needs an app access token 
    } catch OauthException { 
    // try to retrieve a new access token from Facebook 
    if (new access token != old access token) 
     //update cache of app access token 
     // try call again 
    else 
     //handle error some other way 
    } 

(當然,如果你想也需要更新您的代碼檢索您的應用程序改變的祕密訪問令牌,但也許有一天令牌將在沒有祕密改變的情況下到期)

1

它是一個靜態訪問標記,除非您手動要求它們更改它。

3

如上一個答案中所述,應用程序訪問令牌僅在1個案例中發生變化。

  • 當AppSecret是復位AppSecret的

變遷是一個Facebook應用程序的情況下的重大變化。如果您將appSecret和訪問令牌存儲在app.config/web.config中並從中訪問,那將會更好。這將有助於您在需要時重新設置,而無需對代碼進行更改。