Arhn - архитектура программирования

Facebook Api получает фиды и комментарии

Я пытаюсь получить фиды на общедоступной стене и связанные с ними комментарии. Итак, каждые X минут я делаю запрос, чтобы узнать, что нового (каналы и комментарии).

Мне нужны каналы (новые каналы, начиная с myDate) и комментарии (комментарии, опубликованные в новых каналах, и комментарии, опубликованные в старых каналах). Поэтому, если кто-то оставил комментарий к более старой ленте, я хочу получить его. Я пытался сделать это с помощью FQL и Graph API, но мне не удалось найти лучшее решение.

С FQL есть некоторые проблемы (ошибки) с LIMIT и OFFSET и работает не очень хорошо. С Graph API у меня не так много возможностей. Итак, вот что я пробовал:

https://graph.facebook.com/PAGE_ID/feed?access_token=MY_ACCES_TOKEN0&limit=500&since=1350033469&until=now&updated_time>1350033469

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

https://graph.facebook.com/PAGE_ID/comment?access_token=MY_ACCES_TOKEN0&limit=500&since=1350033469&until=now&updated_time>1350033469

Проблема в том, что если комментарий размещен к более старому сообщению, я его не получу.

Используя FQL, я не могу фильтровать только самые новые сообщения (на основе моей даты) и сообщения с новыми комментариями.

https://api.facebook.com/method/fql.query?query=SELECT post_id, text, fromid FROM comment WHERE post_id IN (SELECT post_id FROM stream where source_id=PAGE_ID and comments.created_date>1350033469)&access_token=MY_ACCES_TOKEN

Используя Graph API, у меня есть хорошая разбивка на страницы (с использованием следующей и предыдущей ссылок внутри ответа), но с FQL я не нашел никакого решения.

Так у кого-нибудь есть идеи? Спасибо.

C.C.



Ответы:


1

Во-первых, поддержка FQL устарела, поэтому вам нужно использовать только Graph API.

Решение, с которым я пришел, заключается в том, что когда у вас уже есть сообщение, вам нужно перепроверить сообщение с его уникальным идентификатором, и этот запрос дает вам два раза, created_time и updated_time, поэтому вам нужно проверить, изменился ли ваш updated_time.

Разбивка на страницы, заданная в Graph API, предназначена только для сообщений, поэтому, когда у сообщений есть новые комментарии, они не будут первыми в списке, вам нужно найти их самостоятельно.

-- ОБНОВЛЕНИЕ --

Для этого используйте batch_requests, чтобы вы могли делать больше запросов за раз.

12.10.2012
  • Ваше решение неплохое, но что бы вы сделали, если бы у вас было 5000 сообщений, хранящихся в БД. Вы сделаете 5000 запросов, чтобы проверить комментарии? 12.10.2012
  • Я знаю, это ужасно, у нас было больше, позвольте мне сказать вам, но у вас также есть batch_requests, так что вы можете запрашивать около 1000 за раз, я действительно не знаю точное число, я делал 60 за раз , потому что это было управляемо. 12.10.2012
  • Я читал что-то о пакетном запросе. Значит, вы используете его, и он работает нормально? 12.10.2012
  • конечно, это те же просьбы, только их можно делать много за раз. 12.10.2012
  • Итак, это то, что вы искали? 12.10.2012
  • Это компромиссное решение. Я надеялся, что кто-то опубликует второе решение. 15.10.2012
  • Если я не ошибаюсь, FQL не устаревает. Rest API устаревает, и, если я правильно понимаю, это не одно и то же. 15.10.2012
  • Вы в конечном итоге использовали пакетные запросы? это решение для вас? 31.01.2013
  • Привет, ребята. Поскольку FQL устарел (объявлен как часть версии 2.0), мне нужно найти ответ на этот вопрос. Из моего тестирования (давным-давно) казалось, что проверка каждого поста израсходовала часть ограничения API. Это означает, что чем больше сообщений, тем реже вы можете их проверять. Я бы предположил, что с 5000 сообщений вам может быть трудно даже проверить их все, поскольку комментарии будут ограничены каждые 15 минут? Может ли кто-нибудь объяснить, как на это влияет ограничение API?.. Большое спасибо, Роб. 15.05.2014
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..