Скорее всего, вы столкнулись с этой ситуацией. Это действительно расстраивает.
Facebook iOS SDK не хранит файлы cookie для доступа
Вы можете, если хотите, заставить библиотеку iOS использовать ваше приложение для входа в систему и авторизоваться через UIWebview, локальный для вашего приложения. Таким образом, вы вошли в систему, и у вас есть куки для использования. Вам нужно будет добавить метод к существующему объекту Facebook. Обычно вы звоните:
- (void) authorize:(NSArray *)permissions
delegate:(id<FBSessionDelegate>)delegate
для авторизации, которая в свою очередь вызывает закрытый метод:
- (void)authorizeWithFBAppAuth:(BOOL)tryFBAppAuth
safariAuth:(BOOL)trySafariAuth
с обоими параметрами, установленными на ДА.
Вы хотите добавить открытый метод, который вызывает ту же самую частную функцию, но для обоих параметров установлено значение NO. Я добавил этот метод в Facebook.m и объявил его в Facebook.h, чтобы я мог вызывать его так, как мне нравится:
- (void)authorize:(NSArray *)permissions
tryFBApp:(BOOL) tryFBApp
trySafariAuth:(BOOL) trySafariAuth
delegate:(id<FBSessionDelegate>)delegate {
[_permissions release];
_permissions = [permissions retain];
_sessionDelegate = delegate;
[self authorizeWithFBAppAuth:tryFBApp safariAuth:trySafariAuth];
}
Я называю это с двумя параметрами BOOL, установленными на NO, и библиотека открывает локальный UIWebView, который оставляет мне файлы cookie, которые работают для приложения.