如何在使用Facebook iPhone SDK时刷新oauth令牌

Tom*_*ift 14 iphone facebook oauth ios

我在我的应用程序中使用Facebook SDK for iOS:http: //github.com/facebook/facebook-ios-sdk

oAuth令牌在大约2小时后到期.如何在不必再次调用[Facebook授权...]方法的情况下"刷新"oAuth令牌 - 如果用户之前已登录,则会短暂显示一个空的Facebook对话框?我想避免的是要求用户每次使用应用程序时重新登录FB - 比如说,每天都要.

当应用程序退出/启动时,我已经在保存/恢复oAuth令牌.我可以使用[Facebook isSessionValid]检查令牌是否有效,或者检查令牌上的过期时间.但是如果令牌已经过期该怎么办?我已经读过可以"刷新"令牌,但我不明白这是如何完成的.

我不想请求"offline_access"权限,这将给我一个"永远"的令牌.

救命!?

fud*_*dge 4

Facebook 的 OAuth 实现不支持令牌刷新。

Facebook 中有 2 种类型的 access_token。短期令牌,默认情况下给出,长期令牌在您请求离线访问时给出。如果支持刷新令牌,则与为所有应用程序提供离线访问令牌相同。

只要用户在您的 Web 控件上有活跃的 facebook 会话,您就可以通过访问https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=http://www.facebook 来请求新的 access_token。 com/connect/login_success.html&response_type=token或者可能是一些具有相同功能的 iOS SDK 命令(从未使用过它,所以我无法判断)。这种请求不会要求用户再次登录,而是使用第一次登录时创建的上一个会话。