Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS-Facebook SDK v.4.5.1-获取用户名和电子邮件_Ios_Facebook_Login - Fatal编程技术网

iOS-Facebook SDK v.4.5.1-获取用户名和电子邮件

iOS-Facebook SDK v.4.5.1-获取用户名和电子邮件,ios,facebook,login,Ios,Facebook,Login,我正在将Facebook登录集成到我的应用程序中。SDK安装得非常完美-我已经测试了所有东西。我也能够完美地登录和注销。 但现在最重要的部分是:我不知道如何获取我需要的数据(用户名、电子邮件地址等) 我当前在头文件中声明了LoginButton @property (strong, nonatomic) IBOutlet FBSDKLoginButton *loginButton; 然后我的主文件中有: loginButton = [[FBSDKLoginButton alloc] i

我正在将Facebook登录集成到我的应用程序中。SDK安装得非常完美-我已经测试了所有东西。我也能够完美地登录和注销。 但现在最重要的部分是:我不知道如何获取我需要的数据(用户名、电子邮件地址等)

我当前在头文件中声明了LoginButton

@property (strong, nonatomic) IBOutlet FBSDKLoginButton *loginButton;
然后我的主文件中有:

    loginButton = [[FBSDKLoginButton alloc] init];
loginButton.delegate = self;
loginButton.readPermissions =
@[@"public_profile", @"email", @"user_friends"];
[self.view addSubview:loginButton];
我还实现了我需要的两个方法——它们被正确地调用了

    - (void)  loginButton:  (FBSDKLoginButton *)loginButton
didCompleteWithResult:  (FBSDKLoginManagerLoginResult *)result
                error:  (NSError *)error{

    NSLog(@"facebook login button test");



}
- (void) loginButtonDidLogOut:(FBSDKLoginButton *)loginButton{
    NSLog(@"facebook logout button test");
}
下一步是什么?所有在线教程都已过时或使用Swift。我主要需要知道用户的姓名、电子邮件以及他是否登录(稍后)


非常感谢。

您可以通过以下方法获得它

- (void)getFacebookData{
    if ([FBSDKAccessToken currentAccessToken]) {
        [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:@{@"fields": @"first_name, last_name, picture.type(large), email, name, id, gender"}]
         startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
             if (!error) {
                 NSLog(@"fetched user:%@", result);
             }
         }];
    }
}
然后调用这个方法,如下所示

- (void)  loginButton:  (FBSDKLoginButton *)loginButton
didCompleteWithResult:  (FBSDKLoginManagerLoginResult *)result
                error:  (NSError *)error{

    NSLog(@"facebook login button test");

   [self getFacebookData];

}

通过这种方式,您可以获得有关用户的所有信息。

您可以查看以下答案:非常感谢Piyus,它工作得非常好。在getFacebookData中,例如如何从“结果”中获取第一个名称?能否告诉我NSLog(@“获取的用户:%@”,结果)的日志是什么?没关系,我找到了解决方案,我只需要重新创建字典:NSDictionary*userData=(NSDictionary*)result;