Facebook SDK собирает информацию пользователя и друзей

Я пытаюсь использовать SDK для сбора информации о пользователях и друзей. В идеале я хотел бы использовать FBRequest, а не FBConnectionRequest. Как указано на странице «Разработчик» Facebook, он говорит, что использует FBRequest для нескольких запросов на информацию и Connection только для одного.

Объект FBRequest может быть повторно использован для выдачи нескольких подключений к Facebook. Однако каждый экземпляр FBRequestConnection будет управлять одним соединением.

Источник

В настоящее время я устанавливаю FBRequestConnection следующим образом:

[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id<FBGraphUser> user, NSError *error) 

То, что я пытаюсь достичь, – собрать информацию о пользователе, такую ​​как имя, имя пользователя и адрес электронной почты и т. Д. (Что отлично работает с вышеизложенным, я уже обработал сеанс / с разрешениями для этого.

Теперь мне нужно изменить соединение, чтобы оно было FBRequest, поэтому я могу использовать следующий метод делегата:

 - (void)request:(FBRequest *)request didLoad:(id)result { 

Затем в рамках метода делегата я буду вызывать второй запросForMyFriends и обрабатывать как много информации одним методом. Мое создание запроса завершено в моем блоке входа и просто следующее:

  FBRequest *request = [FBRequest requestForGraphPath:@"me/?fields=name,picture"]; [request startWithCompletionHandler:NULL]; 

Во-первых, это правильный способ приблизиться к этому?

Во-вторых, я получаю сообщение об ошибке, когда он попадает в FBRequest, поэтому здесь должна быть проблема, но я не уверен, что является неправильным. Я не могу найти дополнительную информацию о Facebook, но если кто-то может указать мне в правильном направлении учебника, используя этот метод, который также поможет.

EDIT – ошибка введите описание изображения здесь

EDIT 2 – дополнительный пример кода

 // TODO : logging can be turned off/removed [FBSettings setLoggingBehavior:[NSSet setWithObjects:FBLoggingBehaviorFBRequests, nil]]; NSDictionary *params = @{ @"fields" : @[ @"name", @"picture" ] }; FBRequest *request = [FBRequest requestWithGraphPath:@"me" parameters:params HTTPMethod:nil]; //nil will default on GET [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {}]; 

2 Solutions collect form web for “Facebook SDK собирает информацию пользователя и друзей”

Вы получаете ошибку EXC_BAD_ACCESS так как вы не можете передать пустой метод обработчика завершения.

Приведенный ниже код проверен и работает по назначению.

 FBRequest *request = [FBRequest requestForGraphPath:@"me/?fields=name,picture"]; [request startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) { NSLog(@"%@", result); }]; 

Получение разрешения пользователя с помощью READ Access only

  let permissionsDesired = ["email", "public_profile", "user_friends"] let facebookLogin = FBSDKLoginManager() facebookLogin.logInWithReadPermissions(permissionsDesired, fromViewController: sender) { (facebookLogin:FBSDKLoginManagerLoginResult!, facebookError:NSError!) -> Void in if facebookError != nil { print("Facebook login. Error: \(facebookError.localizedDescription)") self.delegate?.permissionResults(false) } else { // access granted, you can start //requesting user data now self.requestUserInfo() } } 

Ниже приведено, как получить Пользовательские данные после того, как пользователь предоставил разрешение

 func requestUserInfo( ) { let graphPath:String = "me" let httpMethod:String = "GET" var listOfrequest:String = String("about") listOfrequest = listOfrequest .stringByAppendingString(",age_range") listOfrequest = listOfrequest .stringByAppendingString(",bio") listOfrequest = listOfrequest .stringByAppendingString(",birthday") listOfrequest = listOfrequest .stringByAppendingString(",context") listOfrequest = listOfrequest .stringByAppendingString(",cover") listOfrequest = listOfrequest .stringByAppendingString(",currency") listOfrequest = listOfrequest .stringByAppendingString(",devices") listOfrequest = listOfrequest .stringByAppendingString(",education") listOfrequest = listOfrequest .stringByAppendingString(",email") listOfrequest = listOfrequest .stringByAppendingString(",favorite_athletes") listOfrequest = listOfrequest .stringByAppendingString(",favorite_teams") listOfrequest = listOfrequest .stringByAppendingString(",first_name") listOfrequest = listOfrequest .stringByAppendingString(",gender") listOfrequest = listOfrequest .stringByAppendingString(",hometown") listOfrequest = listOfrequest .stringByAppendingString(",id") listOfrequest = listOfrequest .stringByAppendingString(",inspirational_people") listOfrequest = listOfrequest .stringByAppendingString(",installed") listOfrequest = listOfrequest .stringByAppendingString(",install_type") listOfrequest = listOfrequest .stringByAppendingString(",is_shared_login") listOfrequest = listOfrequest .stringByAppendingString(",is_verified") listOfrequest = listOfrequest .stringByAppendingString(",languages") listOfrequest = listOfrequest .stringByAppendingString(",last_name") listOfrequest = listOfrequest .stringByAppendingString(",link") listOfrequest = listOfrequest .stringByAppendingString(",locale") listOfrequest = listOfrequest .stringByAppendingString(",location") listOfrequest = listOfrequest .stringByAppendingString(",meeting_for") listOfrequest = listOfrequest .stringByAppendingString(",middle_name") listOfrequest = listOfrequest .stringByAppendingString(",name") listOfrequest = listOfrequest .stringByAppendingString(",name_format") listOfrequest = listOfrequest .stringByAppendingString(",payment_pricepoints") listOfrequest = listOfrequest .stringByAppendingString(",picture") listOfrequest = listOfrequest .stringByAppendingString(",political") listOfrequest = listOfrequest .stringByAppendingString(",public_key") listOfrequest = listOfrequest .stringByAppendingString(",quotes") listOfrequest = listOfrequest .stringByAppendingString(",relationship_status") listOfrequest = listOfrequest .stringByAppendingString(",religion") listOfrequest = listOfrequest .stringByAppendingString(",security_settings") listOfrequest = listOfrequest .stringByAppendingString(",shared_login_upgrade_required_by") listOfrequest = listOfrequest .stringByAppendingString(",significant_other") listOfrequest = listOfrequest .stringByAppendingString(",sports") listOfrequest = listOfrequest .stringByAppendingString(",test_group") listOfrequest = listOfrequest .stringByAppendingString(",third_party_id") listOfrequest = listOfrequest .stringByAppendingString(",timezone") listOfrequest = listOfrequest .stringByAppendingString(",updated_time") listOfrequest = listOfrequest .stringByAppendingString(",verified") listOfrequest = listOfrequest .stringByAppendingString(",video_upload_limits") listOfrequest = listOfrequest .stringByAppendingString(",viewer_can_send_gift") listOfrequest = listOfrequest .stringByAppendingString(",website") listOfrequest = listOfrequest .stringByAppendingString(",work") let params:[NSObject:AnyObject] = ["fields": listOfrequest ] let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: graphPath, parameters: params, HTTPMethod: httpMethod) graphRequest.startWithCompletionHandler( { (connection:FBSDKGraphRequestConnection!, userData:AnyObject!, error:NSError!) -> Void in if (error == nil) { print(userData) } else { print("Error: \(error.localizedDescription)") //Handle error here } }) }//eom 
  • Совместное использование пользовательских историй с использованием диалога общего доступа
  • При нажатии FBLikeControl отображается пустая страница и возвращается в приложение.
  • Как использовать FBTestSession
  • Возможно ли, что приложение iOS с неправильной информацией IDFA проходит проверку App Store?
  • FB iOS Login - «Приложение должно запрашивать разрешение basic_info во время установки».
  • Предоставляет ли Facebook iOS SDK пользователю аутентификацию каждый раз, когда они используют приложение?
  • fbDidLogin никогда не вызывал (facebook-ios-sdk)
  • Facebook iOS SDK 3.2.1 - : непризнанный селектор, отправленный в экземпляр
  • Facebook iOS SDK - приложение для Facebook падает на openActiveSessionWithReadPermissions. Мое приложение висит на входе
  • Facebook открывают историю запуска графика с помощью fitness.course
  • FB Войти с использованием Swift 3 не возвращает никаких значений и не возвращает пользователя в приложение после успешного входа в систему
  • Interesting Posts

    Изменение свойств CAEmitterCell CAEmitterLayer после запуска выбросов

    Делегат PSCollectionView не работает

    Воспроизведение фоновой музыки в приложении?

    UICollectionView с автосогласованием ячейки (оцененный размер) и sectionHeadersPinToVisibleBounds идет умственно

    iOS использует Vary для черт между размерами iPhone

    обнаружение изменения содержимого UITextField, когда изменение не производится с помощью клавиатуры

    Повторное открытие AVCaptureSession

    Статические ячейки: содержимое не отображается

    Нажатие ссылки в UIWebView нажимает на стек NavigationView

    Ожидайте существующих значений iCloud перед установкой значения?

    Узнайте, какой пользователь регистрируется в приложении в зависимости от touchid в iOS

    Использование 2 разных контроллеров просмотра в UIPageViewController в качестве страниц

    Как отправить архив только для 64-разрядных устройств iOS?

    UIImagePickerController, Check camera

    Подтверждение подписки на автоматическое возобновление iOS из нескольких приложений

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.