2012-05-24 37 views
1

这是一个迫切需要回答的问题。 我正在开发iPhone应用程序以将图像分享到社交网络。 我正在使用ShareKit 2.0库来实现共享功能。 我可以完美地实现共享功能,我建议使用ShareKit库来实现您的应用程序共享。ShareKit Facebook/Twitter注销没有完全工作

该问题只在Facebook/Twitter注销。 当我想从他们注销时,我使用的代码如下。

[SHKFacebook logout]; 
[SHKTwitter logout]; 

或者我用

[SHK logoutOfAll]; 

但从他们,我不能完全退出,而当我试图共享的图像给他们,他们说:“你是登录到这个应用程序为XXX “只是要求证实这一点。 当我从iPhone/iPad上移除应用程序时,他们需要邮件地址和密码才能再次登录。

我认为这对经验丰富,才华横溢的开发人员来说不是一个大问题。 请帮帮我。 我在等你的建议。

谢谢。 裴。

回答

2

脸书无法注销,因为所有的脸书饼干都不会在注销方法中被删除。在invalidateSession方法

化妆变化如下facebook.m文件:

- (void)invalidateSession { 
    self.accessToken = nil; 
    self.expirationDate = nil; 

    NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 

    for (NSHTTPCookie* cookie in cookies.cookies){ 
     if([cookie.domain rangeOfString:@"facebook"].location != NSNotFound){ 
      [cookies deleteCookie:cookie]; 
     } 
    } 

    // setting to nil also terminates any active request for whitelist 
    [_frictionlessRequestSettings updateRecipientCacheWithRecipients:nil]; 
} 

它会删除facebook.and注销的所有Cookie会工作。

0

在ShareKit 2.0中,您必须通过去Facebook页面注销,因为它适用于单次登录。这意味着你只有一次登录,它仍然登录,直到你从iphone的脸书页面注销。

0

我经过艰苦的研究后发现了他们的解决方案。 问题在于ShareKit库的Facebook.m的授权方法。

- (void)authorize:(NSArray *)permissions { 
    self.permissions = permissions; 

    [self authorizeWithFBAppAuth:YES safariAuth:NO]; 
} 

以上表示将授权给Facebook不使用Safari。 当用户从Facebook注销时,它不会完全清除Safari的Cookie。 这样就使它不使用Safari认证方法。 这导致Facebook登录在应用程序本身,而不是Safari浏览器。

关于twitter,ShareKit 2.0使用iOS标准Twitter框架从Twitter登录/注销。 用户可以在iPhone的“设置”应用程序中使用他们的帐户登录Twitter。 当用户通过他们的应用连接到Twitter时,它仅使用注册帐户,用户可以从列表中选择他们的帐户。

这些问题还有其他解决方案吗? 我想知道他们,如果有的话。

感谢你和所有人。 裴。