Подтвердить что ты не робот

Выход из Facebook в приложении с помощью Facebook ios SDK

У меня встроенный вход в Facebook в моем приложении, и пользователь может войти в систему как с моей учетной записью приложения, так и с Facebook и выполнить соответствующие действия. Для интеграции с Facebook я добавил Facebook SDK. Теперь, когда кнопка Logout нажата в моем приложении, она должна очистить все полномочия учетной записи Facebook. Я пошел за:

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


}

Но когда я снова нажимаю кнопку, я перенаправляюсь непосредственно на свою учетную запись, не переходя на страницу входа в Facebook.

Как я могу выйти из Facebook?

4b9b3361

Ответ 1

Используя новый набор для входа в систему Facebook SDK, просто напишите ниже строку и это...

[[FBSDKLoginManager new] logOut];

Если вы используете swift, убедитесь, что у вас есть необходимый импорт.

import FBSDKLoginKit

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

Ответ 2

Для выхода из системы вы должны попробовать это

вы можете добавить кнопку "Выход" в диспетчере навигации (верхний правый угол) в режиме viewDidLoad

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

и метод действия для добавленной кнопки -

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

Надеюсь, это поможет вам!

Ссылка

Edit:

Как вы спросили, почему он не запрашивает имя пользователя и пароль, поэтому причина такова:

Когда мы интегрируем Facebook SDK в наше приложение и пытаемся войти в систему, он автоматически проверяет два места (чтобы убедиться, что мы уже вошли в систему Facebook или нет)

  • Прежде всего, он проверяет, уже ли мы входим в приложение для регистрации на Facebook, которое установлено на этом устройстве.

  • Затем он проверяет, сохранили ли мы Пользовательское имя FaceBook и пароль в настройках устройства.

Если в обоих местах мы не вошли в систему, он будет запрашивать имя пользователя и пароль в приложении

вы можете проверить настройку учетной записи Facebook в настройках устройства, как показано на рисунке ниже,

Нажмите главную кнопку → Настройки → Facebook

enter image description here

Ответ 3

FBSDK делает logout следующим образом:

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

Ответ 4

В postButtonClicked напишите следующее, если иначе:

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