Я хочу искать сообщения (новостные ленты) с помощью графического API за последние 30 дней данных? Какова наилучшая практика? И имеет ли API-интерфейс Facebook API ограничение API для ограничения запросов HTTP-запросов?Поиск сообщений с помощью Facebook Graph Api
ответ
Моя дорогая, просто пользуйтесь расширенным разрешением от пользователя либо с помощью кнопки входа в систему, либо с помощью URL-адреса входа в систему (в случае php sdk), вам просто нужно воспользоваться токеном доступа, позвонить, сделать звонок json, чтобы взять информацию, что вам нравится.
<fb:login-button perms='read_stream' autologoutlink='true'></fb:login-button>
Если у Вас есть маркер доступа для пользователя, то вы просто позвоните граф API для этого
$name=json_decode(file_get_contents('https://graph.facebook.com/USERID/feed?access_token='.Your ACCESS TOKEN));
Это будет вернуть то, что вам нужно. Но не забудьте заменить
USERIDна ваш идентификатор пользователя и
YOUR ACCESS TOKENс вашим токеном доступа.
ПРИМЕЧАНИЕ: Ни одно из ниже не работает. Начиная с версии 2.3 API-интерфейса Facebook, конечная точка поиска устарела.
Копирование from here under "Searching":
Поиск
Вы можете осуществлять поиск по всем общественным объектам в социальный граф с https://graph.facebook.com/search. Формат является:
https://graph.facebook.com/search?q=QUERY&type=OBJECT_TYPE
Мы поддерживаем поиск следующих типов объектов:
* All public posts: https://graph.facebook.com/search?q=watermelon&type=post * People: https://graph.facebook.com/search?q=mark&type=user * Pages: https://graph.facebook.com/search?q=platform&type=page * Events: https://graph.facebook.com/search?q=conference&type=event * Groups: https://graph.facebook.com/search?q=programming&type=group * Places: https://graph.facebook.com/search?q=coffee&type=place¢er=37.76,122.427&distance=1000 * Checkins: https://graph.facebook.com/search?type=checkin
Вы можете также искать отдельного пользователя Лента новостей, ограниченный друзьям этого пользователя, путем добавления аргумента aq к домашнему подключению URL:
* News Feed: https://graph.facebook.com/me/home?q=facebook
Это один из способов сделать это. Но ваша лучшая ставка будет использовать FQL, которая используется JavaScript SDK, с fb.dataquery method. Что вы хотите сделать, так это использовать stream table, чтобы получать сообщения о статусе для пользователей.
Теперь, исходя из вашего вопроса, я понимаю, что вы скорее используете версию PHP над версией Javascript. Согласно того, что вам нужно сделать, это расшифровывает (используя json_decode
) объект JSON Recevied по этому адресу:
https://graph.facebook.com/[USERNAME/USERID]?fields=posts&access_token=[A VALID ACCESS TOKEN]
Насколько я знаю, это sould не имеют предела. Однако взгляните на docs here.
Facebook сильно изменился. В версии 2.3 не поддерживается много вещей! – iamprem
Лучший способ - использовать функции file_get_contents PHP с этим URL-адресом.
В противном случае cURL получит тот же ответ; просто помните, что любые ответы находятся в формате JSON, поэтому используйте json_decode, чтобы начать обработку информации.
Типичный фид для facebook должен выглядеть следующим образом;
$feedurl = "https://graph.facebook.com/$user_id/feed?access_token=$valid_access_token";
$feed = file_get_contents($feedurl);
$feed = json_decode($feed);
foreach ($feed->data as $post){
//process each post
}
Для поиска, насколько я могу судить, нет конкретного способа поиска новостей или новостей для пользователей; но можно искать в facebook через свой API поиска. https://developers.facebook.com/docs/reference/api/
Это может быть сделано с Graph API
Как сказано в документации, установите так парам до 30 дней назад. (Вычитание 30 дней, то есть 30 * 24 * 60 * 60 от текущего штампа времени будет обеспечивать значение или же можно использовать strtotime)
И, да, есть ограничение на количество вызовов API, как указано в Facebook platform policies, то ток пределы являются:
~ (5M MAU): 5 миллионов Авторизованные пользователи для приложения
~ (100M API вызовов в день)
~ (50М показов в день).
Facebook API лежит. Это «мягкие» ограничения. На самом деле существует жесткий предел, который ХОРОШО ниже этих пределов для всего приложения. –
Вы можете использовать этот вызов с маркером доступа из графа исследователя, где число является представителем page ID
:
123123123123123?fields=posts.limit(5)
17 августа 2016 года, FQL больше не доступен и не может быть запрошен ...
Я не понимаю, почему Facebook меняет весь SDK/API вместо его обновления.
@ TomGranot-Scalosub Как я могу? –