Код здесь не является синхронным. Это означает, что он не блокируется после вызова [facebook authorize:nil delegate:self];
. Вместо этого вы должны реализовать метод делегата fbDidLogin
, чтобы получать уведомления о том, когда пользователь действительно вошел в систему. В этот момент получите токены доступа и сохраните их по умолчанию.
Вот частичный образец:
- (void)userClickedFacebookLogin {
[facebook authorize:nil delegate:self]; // delegate is self
}
// Delegate method that you should implement to get notified
// when user actualy logs in.
- (void)fbDidLogin {
// now get the access token and save to user defaults
NSString *access = [facebook accessToken];
// ..
}
Также убедитесь, что класс, имеющий вышеуказанный код, реализует протокол FBSessionDelegate
как минимум.
@interface MyClass <FBSessionDelegate> {
}
@end
Посмотрите на образец DemoApp
и, в частности, класс DemoAppViewController
из Facebook, чтобы получить лучшую идею.