的Facebook SDK IOS得到

问题描述:

我使用facebook sdk 3.0用户信息,但我面对困难的时候,我试图让像电子邮件等的Facebook SDK IOS得到

我的代码用户的信息:

- (IBAction)fbLogin:(id)sender { 

    [self facebookLogin]; 
} 

-(void) facebookLogin 
{ 

[FBSession openActiveSessionWithReadPermissions:@[@"email"] 
    allowLoginUI:YES 
completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { 
    switch (state) { 
     case FBSessionStateOpen: 
      [[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *FBuser, NSError *error) { 
       if (error) { 
       } 
       else { 
        name = [FBuser name]; 
        email = [FBuser objectForKey:@"email"]; 
        pic = [NSString stringWithFormat:@"https://graph.facebook.com/%@/picture?type=large", [FBuser objectID]]; 
       } 
      }]; 
      [self checkUser]; 
      break; 
    } 
}]; 
} 

我的代码打开Facebook登录,并要求授权,但在此之后,它返回到我的应用程序显示/什么都没有。 我通过断点诊断,发现行switch (state)后,它只是退出,没有提供任何信息。

我的问题是,我如何通过facebook sdk 3.0获取用户的电子邮件。

添加下面的应用程序委托:

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
{ 
     return [FBAppCall handleOpenURL:url sourceApplication:sourceApplication]; 

} 

不要忘了进口头:

#import "FacebookSDK.h" 
+0

'如果(状态== FBSessionStateOpen)'这个断点后,线程退出。 – developer

+0

你能检查你是否有一个有效的会话吗?并告诉我你得到了什么!我将编辑我的答案以添加检查有效会话的方法! 或者你有什么状态? – Atrash

+0

让我检查并确认你。 – developer