2013-06-17 3 views
1

Я пытаюсь разработать простое приложение, которое извлекает данные из Facebook, когда пользователь подключается к нему.Извлечение пользовательских данных из Facebook на Xcode

После ознакомления с примером Facebook о том, как получить фотографии пользователя и имена пользователей, я просто хочу получить информацию, например, пол, город, адрес электронной почты и дату рождения.

Следующая часть, где я застрял:

- (void)populateUserDetails 
{ 

    if (FBSession.activeSession.isOpen) { 


     [[FBRequest requestForMe] startWithCompletionHandler: 
     ^(FBRequestConnection *connection, 
      NSDictionary<FBGraphUser> *user, 
      NSError *error) { 
      if (!error) { 
       self.userNameLabel.text = user.name; 
       self.userProfileImage.profileID = user.id; 

      } 
     }]; 

    } 

} 

Мои вопросы:

  • Должен ли я сделать словарь со всеми этими данными? (пол, город, электронная почта и т. д.) -Также, я использую раскадровку, могу ли я использовать ярлыки для всех этих данных, как указано в руководстве пользователя Facebook, для имени пользователя?
  • Я читал в нескольких местах, что метод requestForMe не подходит для других типов данных, которые я ищу. Каким будет метод моих запросов?

ответ

4

Сначала вы должны спросить у пользователя разрешения на доступ к его пол, адрес электронной почты, город ...

Вы делаете массив с необходимыми разрешениями и добавить его к openActiveSessionWithReadPermissions: метод

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

    [FBSession openActiveSessionWithReadPermissions:permissions 
            allowLoginUI:YES 
           completionHandler:^(FBSession *session, 
                FBSessionState status, 
                NSError *error) { 
             }]; 

Затем сделайте запрос, как это, чтобы получить информацию вы хотели

[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 
     NSLog(@"%@", [result objectForKey:@"gender"]); 
     NSLog(@"%@", [result objectForKey:@"hometown"]); 
     NSLog(@"%@", [result objectForKey:@"birthday"]); 
     NSLog(@"%@", [result objectForKey:@"email"]); 
    }]; 

Надеюсь, я решил вашу проблему.

+2

Привет, Бореба, большое спасибо за вашу помощь. Он разрешил эту проблему. Кроме того, для кого-то другого, у кого может возникнуть эта проблема, одна из вещей, с которой я боролся, заключалась в том, что я не искал корректно документацию FB, но, проведя немного больше исследований, я нашел таблицу, которая дает все поля пользователю Object может получить. Вот ссылка: https://developers.facebook.com/docs/reference/api/user/. Еще раз большое спасибо. –