ios - 如何在 iOS SDK 3.0 上检查和更新 Facebook token 的状态?

标签 ios facebook

我有一个 iPhone 应用程序,带有可选 Facebook 登录信息,用户可以在设置中激活该登录信息。

我不明白(不使用“专有”开关变量存储到应用程序存储中)如何知道用户过去是否激活过它,以使用开关显示其状态。

FBSession.activeSession.state 不会提供可靠的值,因为如果 token 已过期, session 可能对应用程序“有效”,但对 Facebook 无效。

除此之外,我无法理解如何在 token 过期时(可能是几个小时后?)续订 token ,并且无需通过切换到 Facebook 应用程序或 Safari 来请求用户发出新的身份验证请求。基本上,我想保留并使用该 token ,直到它有效为止,并在 Facebook 因为 token 过期而拒绝请求时立即更新它。

提前谢谢您!

最佳答案

您可以进行以下示例调用:

BOOL openedWithCachedToken = [FBSession openActiveSessionWithAllowLoginUI:NO];

如果没有缓存 token ,则不会向用户显示登录 UI:

另请参阅:https://developers.facebook.com/docs/reference/ios/3.1/class/FBSession#openActiveSessionWithAllowLoginUI%3A

一旦您拥有缓存 token (openedWithCachedToken 为 true),您就可以发出请求(例如 requestForMe)来验证 session 在 Facebook 上是否有效。如有必要,Facebook SDK 将在您的请求之上发送一个附带请求,以更新 session 。不管怎样,您可以检查自己的请求完成处理程序来处理失败场景,这可能是无效的服务器 session 。

关于ios - 如何在 iOS SDK 3.0 上检查和更新 Facebook token 的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12124546/

相关文章:

Facebook read_stream 问题图 api

c# - 如何使用publish_actions进行测试而无需审核?

database-design - 用于多重身份验证、Facebook Connect、Twitter、OpenID 等的数据库架构

ios - UIPageViewController 内的 UINavigationController 垂直滚动,导航栏高度损坏

ios - iOS 中特定于应用程序的文件加密

ios - 使用 cocoapod 与 Xcode 7.2.1 的 AlamofireObjectMapper 集成问题

ios - Facebook 登录用户数据未显示在 firebase 控制台中

iPhone SDK Facebook DemoApp 无法启动

ios - 一个线程忙于在一个表中写入,而另一个线程从另一个表访问数据

ios - 在 UITableViewCell 中设置 iOS 通讯簿图片