【问题标题】:Unable To Logout of Facebook using Socialize SDK无法使用 Socialize SDK 注销 Facebook
【发布时间】:2012-09-05 11:29:31
【问题描述】:

我正在使用 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];

【问题讨论】:

    标签: iphone ios facebook sdk


    【解决方案1】:

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

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

    【讨论】:

    • 检查更新的问题,我已经做了你提到的但仍然是相同的结果
    • 我已经尝试过 FBSession 实例并调用注销。 [objSession 注销];这可能会对您有所帮助。
    • 你从哪里调用 FBSession..in socialize.. 以及如何?
    • 无论您想在何处注销,只需创建实例并调用 logout 即可。你不需要为此创建全局对象。
    • 如果您认为我研究得很好并且它的价值,请支持我的回答...这将有助于我的回购,希望有一天我也能进入排名联盟
    【解决方案2】:

    我解决了:

    1.在facebook应用程序的高级设置中,我启用了本地/桌面应用程序

    2.在基本设置中禁用单点登录

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

    【讨论】:

      猜你喜欢
      • 2011-09-17
      • 2018-04-07
      • 1970-01-01
      • 2012-03-06
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      相关资源
      最近更新 更多