0

如何通过 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 调用一个方法,并被告知会话已过期。我该如何处理?

4

1 回答 1

0

检查过期令牌的最佳方法是实际尝试 API 调用并处理错误。例如,在您的 open 调用之后,您可以在完成处理程序中调用 startForMeWithCompletionHandler:。在 startForMeWithCompletionHandler: 完成处理程序中,您可以检查错误。

有关如何处理可能返回的错误的更多信息,请参阅此文档: https ://developers.facebook.com/docs/reference/api/errors/

于 2012-12-14T01:48:49.237 回答