无法使用Socialize SDK注销Facebook
我使用Socialize SDK代替Sharekit在我的应用程序中集成邮件,推特和Facebook。
我只需要在用户的个人资料上发布一些字符串,这对于Facebook和Twitter工作正常。
以下是工作流程:
-
用户点击分享,选择facebook / twitter。
-
如果是用户第一次共享,则会弹出facebook / twitter登录屏幕
-
用户登录和身份validation后,共享成功。
-
如果用户第二次共享,则不会弹出facebook / twitter登录屏幕进行身份validation并且共享成功。
-
如果用户想要注销facebook / twitter,他会进入设置面板并点击twitter / facebook按钮退出。
[当它返回分享后,用户点击Twitter,登录屏幕会弹出,但当用户点击Facebook时,会出现几秒钟的阴影框并消失,用户使用之前的帐户登录。 ]
我该如何解决这个问题?
我试过用
[SocializeThirdPartyFacebook removeLocalCredentials] and also [SZFacebookUtils unlink];
我应该怎么做呢
我尝试清除所有缓存和cookie,但结果仍然相同
NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; NSArray* facebookCookies = [cookies cookiesForURL: [NSURL URLWithString:@"http://login.facebook.com"]]; for (NSHTTPCookie* cookie in facebookCookies) { NSLog(@"In For"); [cookies deleteCookie:cookie]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults removeObjectForKey:kSocializeFacebookAuthAppId]; [defaults removeObjectForKey:kSocializeFacebookAuthLocalAppId]; [defaults removeObjectForKey:kSocializeFacebookStringForAPI]; [defaults removeObjectForKey:kSocializeConsumerKey]; [defaults removeObjectForKey:kSocializeConsumerSecret];
Facebook和Twitter SDK在cookie中保存访问令牌。
因此,当您尝试在代码中使用日志记录机制时,必须清除所有缓存和cookie。
我解决了它:
1.在Facebook上的应用程序的高级设置中,我启用了原生/桌面应用程序
2.在基本设置中禁用SSO
3.在预先设置中添加了de-auth回调url
4.增加了以下代码:
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]; } }