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 
  • Как отправить запрос друга от приложения iOS
  • Facebook iOS SDK, исключение из FBSession, *** Ошибка утверждения в -
  • swift 3 facebook sdk получить список друзей
  • iOS 9 Facebook login simulator -canOpenURL: не удалось URL: «fbauth2: ///» - ошибка: «(null)»
  • Swift - использование собственной кнопки входа в Facebook с функциональностью анализа
  • Совместное использование fb-изображения и содержимого сообщений в приложении, не работающем с использованием FBSDKShareDialog
  • Приложение для Facebook предлагает конфигурацию iOS SDK v4.0 и состояния
  • Отключение Facebook от приложения на iOS6?
  • Facebook iOS SDK 3.1 | «Вы уже разрешили YOUR_APP» появляется каждый раз, когда пользователь пытается войти в систему
  • Ошибка входа в систему iOS9 Facebook LoginOpenURL
  • Открытие FBSession в последовательных запусках (FB SDK для SDK 3.0)
  • Interesting Posts

    Патч в инструкции switch для iOS / Objective-C

    Телефонная связь / Кордова с несколькими CDVViewController

    Создание объекта Pod, Cocoapods lint source_files

    CFBundleVersion должен быть разделен на период списком из не более трех неотрицательных целых чисел (ПРЕДУПРЕЖДЕНИЕ ITMS-9000)

    Основной график – предотвращает масштабирование / масштабирование графика, чтобы показать полный диапазон осей

    Включение как многостраничных, так и однострочных стилей в TableView

    FBSDKLoginButtonDelegate не запускает методы делегирования

    ios 6 и 7 не возвращают одинаковые результаты

    Swift: как показать контроллеры детского просмотра через раскадровку, а не программно используя XLPagerTabStrip

    конвертировать base64 декодированные NSData в NSString

    Чтение в текстовом файле в iOS

    Хотите получить ключевое слово в NSDictionary?

    Неверная высота текста, когда текст содержит emoji

    Загрузить фотографию и связать с PFObject в ShareExtension

    вращение инкремента при перемещении и загрузке спрайтов вокруг родительского узла

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