Возобновление сеансов в новом API-интерфейсе FBConnect - PullRequest
1 голос
/ 06 апреля 2011

Я рыскал в интернете в поисках ответа на этот вопрос и не могу его найти.

Используя ТОЛЬКО новый графовый API для новейшего SDK FBConnect, как "возобновить сеанс?"

В старом SDK и API вы могли вызывать что-то вроде [сессия возобновить]; и это возобновит вашу сессию. Я не могу найти эквивалент, который работает с новым SDK / API.

[возобновление сеанса]; не работает.

[session isSessionValid]; проверит правильность сеанса, но не возобновит его.

Прямо сейчас, единственное, что я думаю о том, чтобы заставить пользователя переходить на страницу авторизации приложения каждый раз, когда они его используют. Однако это раздражает, так как после того, как пользователь первоначально авторизует приложение, каждый раз, когда он возвращается на страницу, на которой написано: «Вы уже авторизовали приложение [имя приложения]», а затем вы можете нажать «ОК», и он отправляет вас обратно в приложение с действительным сеансом. * Я видел другие посты в Интернете, где другим разработчикам приходилось использовать этот же процесс, потому что они также не могли найти ответ.

Если у кого-нибудь есть ответы, поделитесь ими. Однако, поскольку этот вопрос предназначен специально для нового API графа и нового SDK, ответы, содержащие код / ​​инструкции для старого API или SDK, будут удалены.

1 Ответ

1 голос
/ 08 апреля 2011

В fbdidLogin сделать

[[NSUserDefaults standardUserDefaults] setObject:facebook.accessToken forKey:@"AccessToken"];
[[NSUserDefaults standardUserDefaults] setObject:facebook.expirationDate forKey:@"ExpirationDate"];
[[NSUserDefaults standardUserDefaults] synchronize];

Каждый раз, когда ваше приложение загружается, восстанавливайте эти ключи и создайте с ними объект facebook:

facebook = [[[Facebook alloc] initWithAppId:@"yourappid"] retain];
facebook.accessToken    = [[NSUserDefaults standardUserDefaults] stringForKey:@"AccessToken"];
facebook.expirationDate = (NSDate *) [[NSUserDefaults standardUserDefaults] objectForKey:@"ExpirationDate"];

Затем используйте isSessionValid для этого объекта. Если это действительно так, просто продолжайте свой бизнес API с этим графическим объектом. Если нет то сделай нормальное разрешение. Это прекрасно работает для меня. Надеюсь, это поможет.

...