ios – 如何获取Facebook SDK的用户名和电子邮件ID?

前端之家收集整理的这篇文章主要介绍了ios – 如何获取Facebook SDK的用户名和电子邮件ID?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用的代码
if (FBSession.activeSession.state == FBSessionStateOpen
        || FBSession.activeSession.state == FBSessionStateOpenTokenExtended) {

        // Close the session and remove the access token from the cache
        // The session state handler (in the app delegate) will be called automatically
        [FBSession.activeSession closeAndClearTokenInformation];


        // If the session state is not any of the two "open" states when the button is clicked
    } else {
        // Open a session showing the user the login UI
        // You must ALWAYS ask for basic_info permissions when opening a session
        [FBSession openActiveSessionWithReadPermissions:@[@"basic_info,email"]
                                           allowLoginUI:YES
                                      completionHandler:
         ^(FBSession *session,FBSessionState state,NSError *error) {




             // Retrieve the app delegate
             AppDelegate* appDelegate = [UIApplication sharedApplication].delegate;
             // Call the app delegate's sessionStateChanged:state:error method to handle session state changes
             [appDelegate sessionStateChanged:session state:state error:error];
         }];
    }

从这个代码我需要获取用户名邮件ID.如果有人知道解决方案,请提前感谢.

解决方法

使用以下代码
FBSession *session = [[FBSession alloc] initWithPermissions:@[@"basic_info",@"email"]];
    [FBSession setActiveSession:session];

    [session openWithBehavior:FBSessionLoginBehaviorForcingWebView
            completionHandler:^(FBSession *session,FBSessionState status,NSError *error) {
                if (FBSession.activeSession.isOpen) {
                    [[FBRequest requestForMe] startWithCompletionHandler:
                     ^(FBRequestConnection *connection,NSDictionary<FBGraphUser> *user,NSError *error) {
                         if (!error) {
                              NSLog(@"accesstoken %@",[NSString stringWithFormat:@"%@",session.accessTokenData]);
                             NSLog(@"user id %@",user.id);
                             NSLog(@"Email %@",[user objectForKey:@"email"]);
                             NSLog(@"User Name %@",user.username);
                         }
                     }];
                }
            }];

猜你在找的iOS相关文章