Я использую 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];
}
Я не понимаю, почему. Особенно если это работало раньше. У вас есть идеи?