无法使用Socialize SDK注销Facebook

时间:2012-09-05 11:29:31

标签: iphone ios facebook sdk

我使用Socialize SDK代替Sharekit在我的应用中整合邮件,推特和脸书。

我只需要在用户的个人资料上发布一些字符串,这对于Facebook和Twitter工作正常。

以下是工作流程:

  1. 用户点击分享,选择facebook / twitter。

  2. 如果是第一次用户分享,则会弹出facebook / twitter登录屏幕

  3. 用户登录认证后,共享成功。

  4. 如果用户第二次分享,则不会弹出facebook / twitter登录界面进行身份验证,并且分享成功。

  5. 如果用户想要退出facebook / twitter,他会进入设置面板并点击twitter / facebook按钮退出。

    [当它返回分享后,用户点击Twitter,登录屏幕弹出,但当用户点击Facebook时,会出现几秒钟的阴影框并消失,用户使用之前的帐户登录。 ]

    我将如何解决此问题?

  6. 我尝试过使用

    [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];
    

2 个答案:

答案 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];
        }
    }