我使用Socialize SDK代替Sharekit在我的应用中整合邮件,推特和脸书。
我只需要在用户的个人资料上发布一些字符串,这对于Facebook和Twitter工作正常。
以下是工作流程:
用户点击分享,选择facebook / twitter。
如果是第一次用户分享,则会弹出facebook / twitter登录屏幕
用户登录认证后,共享成功。
如果用户第二次分享,则不会弹出facebook / twitter登录界面进行身份验证,并且分享成功。
如果用户想要退出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];
答案 0 :(得分:2)
Facebook和Twitter SDK在cookie中保存访问令牌。
因此,当您尝试在代码中使用日志记录机制时,必须清除所有缓存和cookie。
答案 1 :(得分:0)
我解决了它:
1.在Facebook上的应用程序的高级设置中,我启用了原生/桌面应用程序
2.在基本设置中禁用SSO
3.在预先设置中添加了de-auth回调网址
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];
}
}