使用iOS Facebook-SDK 3.1获取电子邮件和个人资料的图像

DaS*_*lva 1 iphone facebook facebook-graph-api ios ios6

最近我开始冒险将我的应用程序集成到facebook-sdk.

我有一个提供登录Facebook的应用程序.因此,在与facebook建立会话之后,这个想法是从用户那里获取一些数据并在我的服务器上用一些数据创建一个新数据,

  • 名称
  • 图片网址
  • 电子邮件
  • facebookID

因此,我使用的是最新版本的facebook sdk-3.1.我创建了一个具有用户权限的会话来获取电子邮件.

    NSArray *permissions = [[NSArray alloc] initWithObjects:
                        @"user_location",
                        @"email",
                        nil];

[FBSession openActiveSessionWithReadPermissions:permissions
                                   allowLoginUI:YES
                              completionHandler:
 ^(FBSession *session,
   FBSessionState state, NSError *error) {
     [self sessionStateChanged:session state:state error:error];
 }];
Run Code Online (Sandbox Code Playgroud)

会话成功创建,之后我开始创建用户.

 if (FBSession.activeSession.isOpen) {
        [[FBRequest requestForMe] startWithCompletionHandler:
         ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
             if (!error) {

                 self.userData.firstNameUser=user.name;
                 self.userData.lastNameUser=user.last_name;
                 self.userData.mainLocation=user.location.name;
                 self.userData.urlImageUser=user.link;
             }
         }];   
    }
Run Code Online (Sandbox Code Playgroud)

那么,如何将使用最后一个SDK的用户的其他数据,电子邮件图像的配置文件发送到我的服务器?

谢谢

小智 10

您在用户对象本身中拥有用户的个人资料图像.

只需创建FBProfilePictureView对象即可设置对象的ProfileID属性.

例如

FBProfilePictureView *profileImage = [[FBProfilePictureView alloc] initWithFrame:frame];
profileImage.profileID = user.id;
Run Code Online (Sandbox Code Playgroud)

它将显示用户的个人资料图片.

您可以在处理程序响应中添加以下代码.