Выход из 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?
Ответы
Ответ 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];
}
}