0

我正在使用 Socialize SDK 代替 Sharekit 在我的应用程序中集成邮件、推特和脸书。

我只需要在用户的个人资料上发布一些字符串,这对 facebook 和 twitter 都很好。

以下是工作流程:

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

  2. 如果是第一次分享,会弹出facebook/twitter登录界面

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

  4. 如果用户第二次分享,facebook/twitter登录界面不会弹出认证,分享成功。

  5. 如果用户想要退出 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];
4

2 回答 2

2

Facebook 和 twitter SDK 将访问令牌保存在 cookie 中。

因此,当您尝试在代码中使用日志记录机制时,您必须清除所有缓存和 cookie。

于 2012-09-05T11:58:12.037 回答
0

我解决了它:

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];
        }
    }
于 2012-09-06T07:49:30.687 回答