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

Posted

技术标签:

【中文标题】iOS - Facebook SDK v.4.5.1 - 获取用户名和电子邮件【英文标题】:iOS - Facebook SDK v.4.5.1 - fetch user name and email 【发布时间】:2015-08-25 16:23:44 【问题描述】:

我正在将 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。我主要需要知道用户的姓名,电子邮件以及他是否登录(稍后)。

非常感谢。

【问题讨论】:

你可以查看这个答案:Not getting Email and public profile using facebook 4.4.0 SDK 【参考方案1】:

您可以通过以下方法获取。

- (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];


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

【讨论】:

非常感谢 Piyush,它运行良好。在 getFacebookData 中,如何从“结果”中获取 first_name? 你能告诉我什么是 NSLog(@"fetched user:%@", result); ? 没关系,我找到了解决方案,我只需要重新创建字典: NSDictionary *userData = (NSDictionary *)result;

以上是关于iOS - Facebook SDK v.4.5.1 - 获取用户名和电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

在 Facebook-Ios-Sdk 中关闭 Facebook 会话

Facebook SDK:在IOS7上无法完成操作(com.facebook.sdk错误2)

Facebook SDK 错误 Domain=com.facebook.sdk Code=5 在 ios 中获取好友列表时

facebook-ios-sdk 是不是使用 iOS 6 Facebook 集成来支持登录而不打开本机 Facebook 应用程序?

无法在 Xcode 3.2.6 上为 iOS 构建 Facebook SDK

iOS Facebook SDK:哪个登录系统更好?