2013-03-25 120 views
39

我在我的應用程序中集成了Facebook登錄,因此用戶可以使用我的應用程序帳戶和Facebook登錄並執行相應操作。對於Facebook集成,我添加了Facebook SDK.Now退出按鈕被點擊我的應用程序有明確的Facebook Account.I的所有憑證都走了:使用Facebook ios SDK註銷Facebook的應用程序

-(IBAction)btnlogOutClicked:(id)sender 
{ 
    [appDelegate fbDidlogout]; 
} 
-(void)fbDidlogout 
{ 
    FBSession* session = [FBSession activeSession]; 
    [session closeAndClearTokenInformation]; 
    [session close]; 
    [FBSession setActiveSession:nil]; 


} 

但是,當我在按鈕再次點擊我米直接重定向到我的帳戶,而無需去給Facebook的登錄頁面。

我該如何註銷Facebook?

+0

哪個SDK?有許多。 (PHP,Js,C#)... – 2013-03-25 08:06:11

+0

Facebook ios SDK是我使用的一個... – Aaradhya 2013-03-25 08:35:51

+0

此代碼工作正常:) – 2014-06-05 08:35:32

回答

0

在你postButtonClicked寫下面的if else:

-(void)postButtonClicked 
{ 

    _session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain]; 
    [_session resume]; 

    posting = YES; 
    showSlideShow = 1; 

    if (_facebookName != nil) 
    { 
     [self logoutButtonClicked]; 
    } 
    if (![_session isConnected]) 
    { 
     self.loginDialog = nil; 
     _loginDialog = [[FBLoginDialog alloc] init]; 
     [_loginDialog show]; 
    } 
    else { 
     self.loginDialog = nil; 
     _loginDialog = [[FBLoginDialog alloc] init]; 
     [_loginDialog show]; 
    } 
} 
+0

使用Facebook的ios SDK.I沒有使用任何FBLoginDialog.Can請你告訴我如何使用Facebook ios SDK註銷? – Aaradhya 2013-03-25 08:43:58

20

對於註銷,你應該試試這個

可以添加上導航控制器(右上角)退出按鈕viewDidLoad中方法

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] 
            initWithTitle:@"Logout" 
            style:UIBarButtonItemStyleBordered 
            target:self 
            action:@selector(logoutButtonWasPressed:)]; 

and the 以上添加按鈕的操作方法是

-(void)logoutButtonWasPressed:(id)sender { 
    [FBSession.activeSession closeAndClearTokenInformation]; 
} 

希望這會幫助你!

Reference

編輯:

至於你問爲什麼它不要求用戶名和密碼,所以,其原因是:

當我們在我們的應用程序整合Facebook SDK並嘗試登錄,它會自動檢查兩個地方(以確保我們已經登錄Facebook或不)

  1. 首先它檢查我們是否已經登錄到安裝在此設備上的Facebook Native應用程序。

  2. 然後它會檢查我們是否在設備設置中保存了我們的FaceBook用戶名和密碼。

如果我們還沒有登錄然後,它會詢問用戶名和密碼的應用程序這兩個地方

您可以在設備設置檢查的Facebook帳戶設置如下截屏所示,

按Home鍵 - >設置 - > Facebook的

enter image description here

+0

我嘗試過使用我們的代碼,但是如果我點擊Login buton而沒有要求登錄ID和psswrd,我會嘗試使用它的代碼...我還需要做什麼? – Aaradhya 2013-03-25 11:35:47

+0

請參閱iOS 6我們有Facebook的原生框架,所以當您從應用程序登錄時,它會檢查您是否已經在設備設置中保存了登錄信息,因此請確保像Twitter一樣,您已經在設置中輸入了Facebook帳戶信息,否則當您嘗試從您的應用程序登錄時,會提示您輸入聯合國和通行證。 – swiftBoy 2013-03-25 11:50:15

+0

對不起,我沒有得到你...現在我可以註銷臉書,當我在瀏覽器中打開Facebook網址,然後在那裏註銷。,然後當我點擊登錄btn在我的應用程序時它的Facebook提示信息(Id和psswrd) – Aaradhya 2013-03-25 11:56:38

9

FBSDK做登出這樣的:

[FBSession.activeSession closeAndClearTokenInformation]; 
    FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init]; 
    [login logOut]; 
79

使用新的Facebook SDK登錄工具包只寫在下面的行,這就是它..

[[FBSDKLoginManager new] logOut]; 

如果使用快捷,確保有必要進口

import FBSDKLoginKit 

func logout() { 
    FBSDKLoginManager().logOut() 
} 
+1

這工作? 'FBSDKLoginManager'需要與login中使用的相同嗎?或者可能是新的對象。 – Mani 2015-09-02 09:19:42

+0

沒有..它不需要相同 – iHulk 2015-09-02 13:02:05

+0

工作很順利! Thx – JDDelgado 2015-11-01 09:03:50

0

如果使用SWIFT 3或4:

var loginManager = LoginManager() 

當一些動作是需要這個代碼粘貼註銷完成

loginManager.logOut() 
+0

@ SaschaM78,幫助配偶 – 2018-02-24 06:44:46