facebook ios sdk 无法登出bug的解决方法
2012-07-25 10:39
621 查看
先说下facebook ios sdk中如何不跳到safari而在程序内登陆
在Facbook.m文件中,注释掉上面那段即可,我的版本是241到260行
然后说下无法登出的原因,先看下登出时调用的方法:
这时候我们发现他只是销毁掉了http://login.facebook.com下的cookie,所以我们的账号有时会无法正常登出,因为他没销毁https://login.facebook.com下的cookie!,所以我们需要在invalidateSession中加入如下代码:
简单起见我就加了个1,大家起名不要这样啊!
// UIDevice *device = [UIDevice currentDevice]; // if ([device respondsToSelector:@selector(isMultitaskingSupported)] && [device isMultitaskingSupported]) { // if (tryFBAppAuth) { // NSString *scheme = kFBAppAuthURLScheme; // if (_urlSchemeSuffix) { // scheme = [scheme stringByAppendingString:@"2"]; // } // NSString *urlPrefix = [NSString stringWithFormat:@"%@://%@", scheme, kFBAppAuthURLPath]; // NSString *fbAppUrl = [FBRequest serializeURL:urlPrefix params:params]; // didOpenOtherApp = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:fbAppUrl]]; // } // // if (trySafariAuth && !didOpenOtherApp) { // NSString *nextUrl = [self getOwnBaseUrl]; // [params setValue:nextUrl forKey:@"redirect_uri"]; // // NSString *fbAppUrl = [FBRequest serializeURL:loginDialogURL params:params]; // didOpenOtherApp = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:fbAppUrl]]; // } // }
在Facbook.m文件中,注释掉上面那段即可,我的版本是241到260行
然后说下无法登出的原因,先看下登出时调用的方法:
- (void)logout { [self invalidateSession]; if ([self.sessionDelegate respondsToSelector:@selector(fbDidLogout)]) { [self.sessionDelegate fbDidLogout]; } }
- (void)invalidateSession { self.accessToken = nil; self.expirationDate = nil; NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; NSArray* facebookCookies = [cookies cookiesForURL: [NSURL URLWithString:@"http://login.facebook.com"]]; for (NSHTTPCookie* cookie in facebookCookies) { [cookies deleteCookie:cookie]; } }
这时候我们发现他只是销毁掉了http://login.facebook.com下的cookie,所以我们的账号有时会无法正常登出,因为他没销毁https://login.facebook.com下的cookie!,所以我们需要在invalidateSession中加入如下代码:
NSArray* facebookCookies1 = [cookies cookiesForURL: [NSURL URLWithString:@"https://login.facebook.com"]]; for (NSHTTPCookie* cookie in facebookCookies1) { [cookies deleteCookie:cookie]; }
简单起见我就加了个1,大家起名不要这样啊!
相关文章推荐
- cocos2d-x 3.10热更强制退出无法继续下载+IOS热更资源有空格热更出错的Bug解决方法
- Windows7 64位下SDK Manager.exe无法运行问题解决方法
- VS2008 “Find in Files”无法查找bug的解决方法
- ios 解决第三方类库无法通过armv7s编译的方法
- IOS微信无法更改标题解决方法
- iOS 解决sdk在iOS7上出现的Bug
- iOS 7 一些bug的解决方法
- Android SDK Manager无法更新的解决方法(当前有效)
- ios设备中angularjs无法改变页面title的解决方法
- iOS9.0 AFNetworking框架setImageWithURL:方法无法获取图片解决方法(App Transport Security)
- SDK 23 无法引用 org.apache.http 的解决方法
- linux ubuntu环境下 android jdk sdk eclipse adt 以及手机连接无法识别的解决方法
- Android:解决无法下载android sdk tool的至简方法!
- 微软bug解决方法:System.ObjectDisposedException: 无法访问已释放的对象。对象名:“Icon”
- android sdk manager 无法更新解决方法
- ios svn无法连接xp或者win7系统svn的解决方法
- 编译链接蘑菇街开源iOS SDK(TeamTalk)遇到的问题及解决方法
- autodesk fbx sdk sample里面的工程无法调试解决方法
- php APC 造成的session无法保存bug及解决方法
- xcode9 输出的SDK,xcode8无法集成的解决方法