我正在尝试为我的应用程序实现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。
[facebook autorize:permissions delegate:self]
设置了会话代理。我也尝试使用[facebook setSessionDelegate:self]
进行设置,但结果仍然相同。 - Tejaswi Yerukalapudi