У меня странная проблема, когда FBDidLogin не вызывается при первой попытке авторизации в приложении Facebook. Я использую последнюю версию Facebook iOS SDK от GitHub.
Я реализовал это в своем делегате приложения:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[[SocialClass sharedSingleton] facebook] handleOpenURL:url];
}
и инициализация моего SocialClass
:
facebook = [[Facebook alloc] initWithAppId:@"0000001234" andDelegate: self];
facebook.accessToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"FBExpirationDateKey"];
и мой метод didlogin в социальном классе:
- (void)fbDidLogin {
NSLog(@"facebook logged in");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
// now let's grab the user info
if(getFriends == YES)
{
[self getFacebookFriends];
}
else
[self getUserInfo];
}
Итак, еще раз, моя проблема в том, что самая первая попытка авторизации не запускает fbDidLogin, только вторая попытка. Я правильно печатаю токен Facebook в методе делегата приложения openURL
для всех попыток.