Как получить фейсбук канал с изображениями и видео вместе с текстом? - PullRequest
0 голосов
/ 23 января 2019

Я хочу получить зарегистрированные пользовательские фиды в приложении ios, я попытался с Graph API, что Graph API возвращает данные, все в порядке.Но когда я проверяю данные в реальном фиде на странице пользователя фейсбука, возникают некоторые проблемы:

  1. Если в сообщении есть только текст, а текст идет по ключу сообщения вместе с идентификатором сообщения,
  2. Если в сообщении есть текст с изображением / видео только текст, приходящий на ключ сообщения
  3. И если в сообщении есть только изображение / видео, ключ сообщения не приходит.

Я знаюКлюч сообщения только для описания / текста, но изображений?Есть ли какой-нибудь способ получить фид с полным контентом, таким же, как он появился на Facebook.

Я попробую ниже код:

Для входа в систему

FBSDKLoginManager().logOut()
    FBSDKLoginManager().logIn(withReadPermissions: ["email", "public_profile", "user_posts"], from: self) { (result, error) in
        if error != nil {
            print("failed to start graph request: \(String(describing: error))")
            return
        }
       // self.getPosts()//old
        self.getFBPost()
    }

Для getFBPost

 func getFBPost() {
    FBSDKGraphRequest(graphPath: "/me/feed", parameters: nil)?.start(completionHandler: { (fbConnectionErr, result, error) in
       // print(fbConnectionErr)
        print(result)
        //print(error)
    })
}

Ответ будет таким:

{
  "data": [
    {
      "message": "https://medium.com/frame-io-engineering/huge-images-small-phone-15414b30d39e",
      "created_time": "2018-12-03T13:59:01+0000",
      "id": "68288174406_653966194"
    },
    {
      "created_time": "2018-12-01T13:43:02+0000",
      "id": "68288174406_6528518443724"
    },
    {
      "message": "I love my Mom",
      "created_time": "2018-11-30T13:27:38+0000",
      "id": "68288174406_652289420323"
    }

}

, как вы можете видеть, что во втором посте есть только идентификатори время создания, пока мы проверяем это на странице в фейсбуке, в этом посте с изображением, а в третьем посте есть видео, но только текст, полученный из графика api

Пожалуйста, руководство, что я сделал не так?Или Что мне нужно сделать, чтобы получить все данные о фидах в формате json так же, как они появились на Facebook?

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Я прочитал документацию, предоставленную @luschn.И получил решение Я забыл декларативные поля, как @luschn предлагает мне, Теперь решение дано ниже: Нужно только изменить в графике API,

 FBSDKGraphRequest(graphPath: "/me/feed", parameters: ["fields":"created_time,attachments,type,message"])?.start(completionHandler: { (fbConnectionErr, result, error) in
     print(fbConnectionErr)
     print(result)
     print(error)
        let re = result as? [String: Any]
        let data = re?["data"] as! [[String: Any]]
        for dict in data {
            print(dict)
        }
    })

ИЛИ Если у вас есть идентификатор страницыВы можете использовать ниже URL, чтобы попасть в API получения.

https://graph.facebook.com/(api_version)/(page_id)?fields=feed{created_time,attachments,message}&access_token=(token_id)

0 голосов
/ 23 января 2019

Вы не запрашиваете никаких полей в вызове API, поэтому вы получаете только поля по умолчанию.Он называется «Декларативные поля» (/me?fields=message,created_time,...) и поставляется с версией 2.4:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...