facebook connect на iPhone - при совершении звонков выдается ошибка 102 Сеансовый ключ недействителен или больше не действителен, но диалоговые окна потока все еще работают

Кто-нибудь видел это?
У меня была ситуация, когда иногда [резюме сеанса] возвращает YES. Я делаю FBRequest.call, и вызывается делегат ошибки. Ошибка имеет 102 «Ключ сеанса недействителен или больше не действителен». Однако, если в рамках одного сеанса я вызываю какие-либо FBDialogs (например, для публикации в потоке), все они работают нормально. Я не понимаю, почему они не страдают от той же ошибки.

Любые идеи?

да. Я знаю, что есть форум для подключения к Facebook, но мне потребовалось много времени, чтобы получить мой пароль. (Да... тут есть ирония - почему они просто не использовали facebook connect для своих форумов... хм).


person dermdaly    schedule 22.02.2010    source источник
comment
Это не отвечает на ваш основной вопрос, но [sessionresume] только выполняет локальную проверку, чтобы убедиться, что у вас есть сохраненный ключ сеанса и что срок его действия не истек. Он не выполняет никакой фактической проверки с Facebook.   -  person chrissr    schedule 23.02.2010


Ответы (1)


- (BOOL)resume {
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  FBUID uid = [[defaults objectForKey:@"FBUserId"] longLongValue];
  if (uid) {
    NSDate* expirationDate = [defaults objectForKey:@"FBSessionExpires"];
    if (!expirationDate || [expirationDate timeIntervalSinceNow] > 0) {
      _uid = uid;
      _sessionKey = [[defaults stringForKey:@"FBSessionKey"] copy];
      _sessionSecret = [[defaults stringForKey:@"FBSessionSecret"] copy];
      _expirationDate = [expirationDate retain];

      for (id<FBSessionDelegate> delegate in _delegates) {
        [delegate session:self didLogin:_uid];
      }
      return YES;
    }
  }
  return NO;
}

Вот код этого метода, я не думаю, что код пытается установить соединение с facebook для проверки, они просто получают дату истечения срока действия. Я думаю, что иногда, когда вы выходите из Facebook, сессия не истекает, но на стороне сервера они удаляют вашу сессию.

person vodkhang    schedule 15.04.2010