对于同一个应用,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登录)
谢谢!
答案 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是Facebook应用程序的一个重大变化。如果将appSecret和访问令牌存储在app.config / web.config中并从那里访问它会更好。这将帮助您在需要时重置,而无需对代码进行更改。
答案 2 :(得分:1)
除非您手动要求他们更改,否则它是一个静态访问令牌。