我有一个 iPhone 应用程序,带有可选 Facebook 登录信息,用户可以在设置中激活该登录信息。
我不明白(不使用“专有”开关变量存储到应用程序存储中)如何知道用户过去是否激活过它,以使用开关显示其状态。
FBSession.activeSession.state 不会提供可靠的值,因为如果 token 已过期, session 可能对应用程序“有效”,但对 Facebook 无效。
除此之外,我无法理解如何在 token 过期时(可能是几个小时后?)续订 token ,并且无需通过切换到 Facebook 应用程序或 Safari 来请求用户发出新的身份验证请求。基本上,我想保留并使用该 token ,直到它有效为止,并在 Facebook 因为 token 过期而拒绝请求时立即更新它。
提前谢谢您!
最佳答案
您可以进行以下示例调用:
BOOL openedWithCachedToken = [FBSession openActiveSessionWithAllowLoginUI:NO];
如果没有缓存 token ,则不会向用户显示登录 UI:
一旦您拥有缓存 token (openedWithCachedToken 为 true),您就可以发出请求(例如 requestForMe)来验证 session 在 Facebook 上是否有效。如有必要,Facebook SDK 将在您的请求之上发送一个附带请求,以更新 session 。不管怎样,您可以检查自己的请求完成处理程序来处理失败场景,这可能是无效的服务器 session 。
关于ios - 如何在 iOS SDK 3.0 上检查和更新 Facebook token 的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124546/