我有一个奇怪的问题,我第一次尝试使用Facebook App进行授权时没有调用FBDidLogin。我正在使用GitHub的最新Facebook iOS SDK。
我已在我的App Delegate中实现了这个:
- (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,只有第二次尝试。我正在使用应用委托openURL
方法正确打印Facebook令牌以进行所有尝试。