Facebook登录永不回调
问题描述:
我实现FB登录,但从来没有得到回调... 在的.plist我没有添加FacebookAppID和FacebookDisplayNameFacebook登录永不回调
这里是我的代码。其从我的问题
-(IBAction)btnLoginWithFBClick:(id)sender {
_session = [[FBSession sessionForApplication:kApiKey secret:kApiSecret delegate:self] retain];
[_session resume];
if (![_session isConnected]) {
_loginDialog = nil;
_loginDialog = [[FBLoginDialog alloc] init];
_loginDialog.delegate = self;
[_loginDialog show];
}
else {
NSLog(@"logado");
- (void)dialogDidSucceed:(FBDialog *)dialog {
if ([dialog isMemberOfClass:[FBLoginDialog class]]) {
NSLog(@"[FBLoginDialog::dialogDidSucceed] just did succeed");
} else if ([dialog isMemberOfClass:[FBPermissionDialog class]]) {
NSLog(@"[FBPermissionDialog::dialogDidSucceed] update user status");
// [self facebookUpdateUserStatus];
}
}
- (void)session:(FBSession*)session didLogin:(FBUID)uid {
[self getFacebookName];
[_loginDialog setHidden:YES];
}
- (void)session:(FBSession*)session willLogout:(FBUID)uid {
//_logoutButton.hidden = YES;
_facebookName = nil;
}
- (void)getFacebookName {
NSString* fql = [NSString stringWithFormat:
@"select uid,name, email, sex, pic from user where uid == %lld", _session.uid];
NSDictionary* params = [NSDictionary dictionaryWithObject:fql forKey:@"query"];
[[FBRequest requestWithDelegate:self] call:@"facebook.fql.query" params:params];
}
- (void)dialogCompleteWithUrl:(NSURL *)url {
if (![[url absoluteString] isEqualToString:@"fbconnect://success#="]) { // your msg
NSLog(@"ae");
}
}
- (void)request:(FBRequest*)request didLoad:(id)result {
if ([request.method isEqualToString:@"facebook.fql.query"]) {
NSArray* users = result;
NSDictionary* user = [users objectAtIndex:0];
NSLog(@"Usuario facebook: %@", user);
NSString *identifier = [user objectForKey:@"uid"];
NSString *name = [user objectForKey:@"name"];
NSString *email = [user objectForKey:@"email"];
NSString *sex = [user objectForKey:@"sex"];
}
}
我已经设置好的了Facebook应用程序的Apple ID,包ID等 我没找对谷歌的解决方案,但没有什么工作...任何想法,所有相关的代码?
答
使用FBLoginView进行Facebook登录将FBLoginView添加到您的视图。 执行类似的FBLoginViewDelegate方法。
-(void)loginViewShowingLoggedInUser:(FBLoginView *)loginView {
//do what you want when login is successfull.
}
//用于注销ü可以简单地弹出对已添加FBLoginview
认为//或U可以调用此方法来注销和流行,查看您所想
- (void)closeSession {
[FBSession.activeSession closeAndClearTokenInformation];
}
//此方法也添加到您的appdelegate
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
// FBSample logic
// We need to handle URLs by passing them to FBSession in order
// for SSO authentication to work.
return [FBSession.activeSession handleOpenURL:url];
}
谢谢,我是缺少的appdelegate的方法,该工作点上! – Veeru