Facebook应用程序访问令牌永远持续?

时间:2011-10-12 16:01:14

标签: facebook facebook-graph-api

对于同一个应用,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/

(搜索App登录)

谢谢!

3 个答案:

答案 0 :(得分: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中并从那里访问它会更好。这将帮助您在需要时重置,而无需对代码进行更改。

答案 2 :(得分:1)

除非您手动要求他们更改,否则它是一个静态访问令牌。