我正在尝试为我的某个应用程序和代理方法实施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。
答案 0 :(得分:7)
糟糕,我刚刚意识到application: handleOpenURL:
方法是iOS应用程序委托方法。我在其中一个UIViewControllers中使用过它。将它移到正确的位置,它可以工作。
答案 1 :(得分:0)
应用程序:handleOpenURL:调用比它还没有调用委托方法。应该有什么问题?