我在我的iOS应用程序上使用Facebook的iOS SDK 3.7来处理登录。当我请求发布权限时,看起来过期日期是从登录之日起大约2个月。
我知道我可以使用[FBSession activeSession].accessTokenData.expirationDate
检查过期日期,但会发生什么,以及如何在令牌过期时处理令牌?
我是否再次运行[FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:];
?
答案 0 :(得分:0)
我这样做,FB会自动重新创建会话。 如果FB更改了使用条款或其他内容,则会向用户显示登录对话框。
// call this before any calls to FB api
- (void)openSession
{
if(FBSession.activeSession.state != FBSessionStateOpen)
{
[FBSession openActiveSessionWithPublishPermissions:@[FB_PUBLISH_ACTIONS_PREMISSION]
defaultAudience:FBSessionDefaultAudienceFriends
allowLoginUI:NO
completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if(!error && session.isOpen)
{
}
else
{
_lastError = error;
// handle the error
}
// here, you can handle the session state changes in switch case or
//something else
[self session:session
hasChangedState:status
withError:error];
}];
}
}