簡體   English   中英

Facebook iOS登錄 - 未調用委托方法

[英]Facebook iOS Login - Delegate methods not being called

我正在嘗試為我的一個應用程序和委托方法實現Facebook登錄 - fbDidLogin: / application: handleOpenURL: / fbDidNotLogin:未被調用。 這是我正在使用的代碼。 任何幫助深表感謝!

- (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 App ID。 我在loginWithFacebook:方法中有斷點並且它們成功點擊。 [facebook authorize:]方法也會被調用。

謝謝,
Teja公司。

糟糕,我剛剛意識到application: handleOpenURL: method是一個iOS應用程序委托方法。 我在其中一個UIViewControllers中使用過它。 將它移動到正確的位置,它的工作原理。

application:handleOpenURL:調用也不會調用委托方法。 應該有什么問題?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM