如何通过iOS SDK检查访问令牌是否已过期?
当我的应用开始从缓存中加载会话时,我会调用[FBSession openActiveSessionWithReadPermissions:permissions allowLoginUI:NO completionHandler:nil]
。
活动会话看起来像这样:
<FBSession: 0x1fdcbae0,
state: FBSessionStateOpen,
loginHandler: 0x0,
appID: 1234567890,
urlSchemeSuffix: ,
tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x1fdcb840>,
expirationDate: 4001-01-01 00:00:00 +0000,
refreshDate: 2012-12-10 07:09:18 +0000,
attemptedRefreshDate: 0001-12-30 00:00:00 +0000,
permissions:(
email
)
FBSession.activeSession.isOpen
始终返回YES。为什么expirationDate
在遥远的未来?
在我的服务器上,我通过PHP调用一个方法,我被告知会话已过期。我该怎么处理?
答案 0 :(得分:0)
检查过期令牌的最佳方法是实际尝试API调用并处理错误。例如,在打开调用之后,您可以在完成处理程序中调用startForMeWithCompletionHandler:在startForMeWithCompletionHandler:completion处理程序中,您可以检查错误。
有关如何处理可能出现的错误的详细信息,请参阅此文档: https://developers.facebook.com/docs/reference/api/errors/