Dans mon ViewControllerfbdidLogin jamais appelé
- (IBAction)loginBtn:(id)sender
{
facebook = [[Facebook alloc] initWithAppId:@"231190276934148" 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",
@"user_about_me",
@"user_photos",
@"friends_about_me",
@"friends_activities",
@"read_stream",
@"publish_stream",
nil];
[facebook authorize:permissions];
}
NSLog(@"asdoiffijd");
}
- (IBAction)btnRequest:(id)sender
{
[facebook requestWithGraphPath:@"me/friends" andDelegate:self];
}
- (void)fbDidLogin
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExiprationDateKey"];
[defaults synchronize];
NSLog(@"fbDidLogin!");
}
Dans mon appDelegate
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [facebook handleOpenURL:url];
}
Je pense que - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
doit être appelée avant l'fbdidLogin
, mais je ne peux pas terminer cette partie [facebook handleOpenURL:url];
dans stackoverflow , [[controller facebook] handleOpenURL:url];
va résoudre le problème, mais je ne peux pas le faire. Toute solution?
Ouais .. J'ai essayé dans appDelegate et ça a vraiment marché. mais puis-je créer le bouton pour la connexion FB dans appDelegate? –
Non, mais dans votre contrôleur de vue, vous pouvez avoir une ligne qui indique quelque chose comme 'YourAppDelegate * appDelegate = (YourAppDelegate *) [UIApplication sharedApplication] .delegate;' et vous pouvez commencer à utiliser votre objet Facebook ou ses méthodes à ce stade. – Rob