2012-05-24 41 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時,它僅使用註冊帳戶,用戶可以從列表中選擇他們的帳戶。

這些問題還有其他解決方案嗎? 我想知道他們,如果有的話。

感謝你和所有人。 裴。