У меня есть приложение с интеграцией facebook, и иногда все работает нормально, но теперь у меня есть почта, которую некоторые люди не могут войти в Facebook.FBSessionStateClosedLoginFailed, когда я вошел в систему через Настройки
Теперь я сейчас в чем проблема.
Если я не вошел в системе через настройку в моем Facebook счет все работает нормально, но когда я вошел через настройку я всегда получаю в sessionStateChanged
Funciton случае FBSessionStateClosedLoginFailed:
Что я могу сделать против него?
Вот мой код:
Во-первых, когда я нажимаю на входе в систему с Facebook я использую эту функцию:
- (void)facebookLoginFunction {
if ([self checkInternet]==TRUE) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sessionStateChanged:) name:FBSessionStateChangedNotification object:nil];
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication]delegate];
// The person using the app has initiated a login, so call the openSession method
// and show the login UX if necessary.
[appDelegate openSessionWithAllowLoginUI:YES];
}
}
и функция sessionStateChanged: в уполномоченной
- (void)sessionStateChanged:(FBSession *)session state:(FBSessionState) state error:(NSError *)error{
switch (state) {
case FBSessionStateOpen:
if (!error) {
// We have a valid session
NSLog(@"User session found");
}
break;
case FBSessionStateClosed: NSLog(@"User session closed");
case FBSessionStateClosedLoginFailed:{ NSLog(@"Login failed");
[FBSession.activeSession closeAndClearTokenInformation];}
break;
default:
break;
}
[[NSNotificationCenter defaultCenter] postNotificationName:FBSessionStateChangedNotification object:session];
if (error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:error.localizedDescription delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
}
}
Я НАСТОЯЩЕМУ надеюсь, что вы можете мне помочь, потому что я не понимаю эту сумасшедшую проблему. благодаря
Довольно старый пост, я предполагаю, что это решается тем временем, но для истории: Убедитесь, что вы как добавить '- (BOOL) применение: (UIApplication *) применение handleOpenURL: (NSURL *) URL { возвращение [FBSession .activeSession handleOpenURL: url]; } ' и - (void) applicationDidBecomeActive: (приложение UIApplication *) { [FBSession.activeSession handleDidBecomeActive]; } ' для вашего делегата приложения – Skrew