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

时间:2012-10-17 15:57:19

标签: iphone ios facebook facebook-graph-api 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];
 }];

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

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

那么,如何才能将使用最后一个SDK的用户的其他数据电子邮件图片的个人资料发送到我的服务器?

由于

2 个答案:

答案 0 :(得分:10)

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

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

e.g。

FBProfilePictureView *profileImage = [[FBProfilePictureView alloc] initWithFrame:frame];
profileImage.profileID = user.id;

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

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

答案 1 :(得分:0)

有效。只需添加

[self.view addSubview:profileImage];