如何使用故事板注销Facebook



我呼叫:

    [[FacebookRequests sharedInstance] facebookLogout];

包含什么:

     [FBSession.activeSession close];
     [FBSession.activeSession  closeAndClearTokenInformation];
     FBSession.activeSession = nil;

出现错误,但我退出了Facebook,这是错误的?

Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x10a441660 {com.facebook.sdk:HTTPStatusCode=400, com.facebook.sdk:ParsedJSONResponseKey={
body =     {
    error =         {
        code = 2500;
        message = "An active access token must be used to query information about the current user.";
        type = OAuthException;
    };
};
code = 400;

}}

更新

我修复了它,在我的

之后
 [FBSession.activeSession close];
 [FBSession.activeSession  closeAndClearTokenInformation];
 FBSession.activeSession = nil;

从block ^(fbsession *session,fbsessionstate state,nserror *error)自动称为Facebooklogin的一部分,它试图获取我仍然没有主动分配的信息,所以我添加了'if(fbsession.activesession.isopen)'和错误不再出现

- (void)facebookLogin
{
 if (FBSession.activeSession.state == FBSessionStateOpen
    || FBSession.activeSession.state == FBSessionStateOpenTokenExtended)
{
     NSLog(@"fb session opened");
} else   {
     [FBSession openActiveSessionWithReadPermissions:@[@"basic_info", @"user_birthday", @"email"]
                                       allowLoginUI:YES
                                  completionHandler:
     ^(FBSession *session, FBSessionState state, NSError *error) {
         if (error) {
         NSLog(@"%@", error.description);
         }
           if (FBSession.activeSession.isOpen) {
         [self getPermissions];
          }
          [self sessionStateChanged:session state:state error:error];
     }];
}

}

删除所有cookie和缓存存储

更多信息登录教程

示例应用程序

-(void) faceBookLogout
    {
        NSHTTPCookie *cookie;
        NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
        for (cookie in [storage cookies])
        {
            NSString* domainName = [cookie domain];
            NSRange domainRange = [domainName rangeOfString:@"facebook"];
            if(domainRange.length > 0)
            {
                [storage deleteCookie:cookie];
            }
        }
    }

最新更新