【问题标题】:How to handle expired Facebook access tokens on iOS and FB SDK 3.7如何在 iOS 和 FB SDK 3.7 上处理过期的 Facebook 访问令牌
【发布时间】:2013-08-22 04:37:15
【问题描述】:

我在我的 iOS 应用上使用 Facebook 的 iOS SDK 3.7 来处理登录。当我请求发布权限时,到期日期似乎是从登录之日起大约 2 个月。

我知道我可以使用 [FBSession activeSession].accessTokenData.expirationDate 检查到期日期,但是会发生什么情况,以及令牌到期时如何处理令牌?

我要再次运行[FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:]; 吗?

【问题讨论】:

  • 快速回答是,不用担心,SDK 会为您更新令牌。

标签: ios facebook cocoa facebook-ios-sdk


【解决方案1】:

我这样做了,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];

                }];
        }
}

【讨论】:

    猜你喜欢
    • 2016-01-14
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 2013-01-03
    • 2014-07-31
    • 1970-01-01
    相关资源
    最近更新 更多