Facebook Connect Вход в систему Проблемы - PullRequest
0 голосов
/ 14 марта 2012

Я использую Facebook Connect с моим приложением. Все настроено, весь код работает. Примерно вчера я мог войти в систему с моим приложением, а затем публиковать вещи и другие функции. Я не помню, чтобы какие-либо реальные изменения. Теперь, как обычно, всякий раз, когда я нажимаю на кнопку «Войти», она переходит на страницу Safari, где я должен подтвердить, что хочу использовать это приложение, и там говорится, с кем я вхожу. Если я нажимаю ОК, он возвращается к приложению. В течение всего этого процесса, в приложении, Facebook никогда не входит в систему. Вот как начинается соединение:

-(IBAction)connectToFacebook {

     [loginButton setImage:[UIImage imageNamed:@"LoginWithFacebookPressed@2x.png"] forState:UIControlStateNormal];
    facebook = [[Facebook alloc] initWithAppId:@"387500177929927" andDelegate:self];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
   if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"]) {
 facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
  facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }
  if (![facebook isSessionValid]) {
   NSArray *permissions = [[NSArray alloc] initWithObjects:
                    @"user_likes", 
                    @"read_stream",
                    nil];
  [facebook authorize:permissions];
   [permissions release];
    }

   NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self   selector:@selector(makeVisibleButtons) userInfo:nil repeats:NO];
      }

Поэтому я нажимаю кнопку, чтобы вызвать этот IBAction. NSTimer не имеет отношения, он просто для появления некоторых кнопок. Теперь эти два метода никогда не вызываются (когда я это регистрирую):

 - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
 sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  return [self.facebook handleOpenURL:url]; 
NSLog(@"handleOpenURL");

   }

- (void)fbDidLogin {

  NSLog(@"log in");
  NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
  [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
  [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
   [defaults synchronize];

    }

Я не понимаю, почему. Особенно если это работало раньше. У вас есть идеи?

1 Ответ

2 голосов
/ 14 марта 2012

Facebook API, имеющий SSO(Single Sign On).Поэтому он попросит пользователя войти в систему только один раз.Этот логин действителен до истечения срока действия токенов логина.Проверьте сам код, что вы храните свои token и expiration time в NSUserDefaults.Это поможет API войти снова.Если вы хотите убедиться, что функция входа в приложение работает или нет, то удалите приложение из симулятора и снова запустите его.Он будет запрашивать ваши учетные данные только в первый раз.Надеюсь, вы предпримите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...