2011-07-23 13 views
4

自分のアプリケーションと代理人のメソッドのFacebookログインを実装しようとしています - fbDidLogin:/application: handleOpenURL:/fbDidNotLogin:が呼び出されていません。ここで私が使用しているコードです。どんな助けでも大歓迎です!Facebook iOSログイン - 代理人のメソッドが呼び出されていない

- (void)viewDidLoad 
{ 
    ... 
    facebook = [[Facebook alloc] initWithAppId:kFacebookAppId]; 
} 

-(IBAction) loginWithFacebook:(id)sender { 
    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 arrayWithObjects: 
           @"email", nil] retain]; 
     [facebook authorize:permissions delegate:self]; 
    } 
} 

#pragma mark - Facebook delegate 

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { 
    return [facebook handleOpenURL:url]; 
} 

- (void)fbDidLogin { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"]; 
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"]; 
    [defaults synchronize]; 
} 

-(void) fbDidNotLogin:(BOOL)cancelled { 

} 

-(void) fbDidLogout { 

} 

私はまた、適切なエントリの下info.plistファイルにFacebookのアプリケーションIDを持っています。私はloginWithFacebook:メソッドでブレークポイントを持っており、正常にヒットしました。 [facebook authorize:]メソッドも呼び出されます。

ありがとう、
Teja。

+0

FBSessionDelegateとして自分自身を設定したことを確認しましたか? – Idan

+0

'[facebook autorize:permissions delegate:self]'がセッションデリゲートを設定すると思います。私は '[facebook setSessionDelegate:self]'を使って設定しようとしましたが、私はまだ同じ結果を持っています。 –

答えて

7

私はちょうどapplication: handleOpenURL:メソッドがiOSアプリケーションデリゲートメソッドであることを認識しました。私は私のUIViewControllerの1つでそれを持っていた。それを適切な場所に移動し、それは動作します。

+0

ありがとう、その大きな助け! –

0

application:handleOpenURL:delegateメソッドを呼び出すよりも呼び出します。何が問題になるはずですか?

関連する問題