我正在尝试为我的一个应用程序实现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 {
}
我也有Facebook的应用程序ID在相应的条目下的info.plist
文件。我在loginWithFacebook:
方法中有断点,并且他们成功打中了。 [facebook authorize:]
方法也会被调用。
谢谢,
Teja。
你确定自己设置为FBSessionDelegate吗? – Idan
我认为'[facebook autorize:permissions delegate:self]'设置会话委托。我试着用'[facebook setSessionDelegate:self]'来设置它,但我仍然有相同的结果。 –