Я использую Facebook Connect со своим приложением. Все настроено, весь код БЫЛ рабочим. Примерно вчера я мог войти в систему с помощью своего приложения, а затем публиковать материалы и другие функции. Я не помню, чтобы я делал какие-то реальные изменения. Теперь, как обычно, всякий раз, когда я нажимаю «Войти», я перехожу на страницу Safari, где мне нужно подтвердить, что я хочу использовать это приложение, и там написано, под каким именем я вхожу. Если я нажму ок, я вернусь в приложение. В течение всего этого процесса в приложении Facebook никогда не входит в систему. ПОМНИТЕ: ТОЛЬКО ВЧЕРА ЭТО РАБОТАЕТ, Я НЕ ПОМНЮ, ЧТО ВНОСИЛ КАКИЕ-ЛИБО ИЗМЕНЕНИЯ! Вот как начинается подключение:
-(IBAction)connectToFacebook {
[loginButton setImage:[UIImage imageNamed:@"[email protected]"] 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]) {
[facebook authorize:nil];
}
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(makeVisibleButtons) userInfo:nil repeats:NO];
[timer setAccessibilityHint:@"timer"];
}
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// JUST SO THAT HANDLE URL CAN GET CALLED
return YES;
}
Поэтому я нажимаю кнопку, чтобы вызвать этот IBAction. NSTimer не имеет отношения, просто для появления некоторых кнопок. Теперь эти два метода никогда не вызываются (когда я их регистрирую):
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
ConnectToFB *connect = [[ConnectToFB alloc] init];
return [connect.facebook handleOpenURL:url];
NSLog(@"url");
[connect release];
}
- (void)fbDidLogin {
NSLog(@"log in");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
Идентификатор приложения актуален, и мои схемы URL-адресов в информационном списке также актуальны. В чем проблема?