У нас возникла проблема с выходом из системы iOS при входе в facebook. Когда я вхожу в facebook с помощью своего приложения, он запрашивает разрешение пользователя с помощью кнопок «войти» и «отменить». Но этот экран появляется только в первый раз. т.е. после того, как мы вошли в систему с помощью сафари или приложения, и даже если мы вышли из facebook, приложение на экране, запрашивающем разрешение пользователя, отображает только кнопку «ОК». Это не позволяет войти в систему как другой пользователь. Почему экран с кнопкой «войти» и «отменить» не отображается при каждом запуске приложения? Я попытался удалить файлы cookie и удалить NSUserDefaults, но безуспешно.
Проблема в том, что после выхода из системы я не могу войти в facebook как другой пользователь. Он по-прежнему отображается как тот же пользователь.
Я вызываю приведенную ниже функцию выхода из системы в sdk
(void)logout:(id<FBSessionDelegate>)delegate {
self.sessionDelegate = delegate;
[_accessToken release];
_accessToken = nil;
[_expirationDate release];
_expirationDate = nil;
NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray* facebookCookies = [cookies cookiesForURL:
[NSURL URLWithString:@"http://login.facebook.com"]];
for (NSHTTPCookie* cookie in facebookCookies) {
[cookies deleteCookie:cookie];
}
if ([self.sessionDelegate respondsToSelector:@selector(fbDidLogout)]) {
[_sessionDelegate fbDidLogout];
}
}
Также в функции делегата fbDidLogout я удалил все объекты NSUserDefaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]) {
[defaults removeObjectForKey:@"FBAccessTokenKey"];
[defaults removeObjectForKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
regrds Shihab