2011-02-02 7 views
3

Я хочу искать сообщения (новостные ленты) с помощью графического API за последние 30 дней данных? Какова наилучшая практика? И имеет ли API-интерфейс Facebook API ограничение API для ограничения запросов HTTP-запросов?Поиск сообщений с помощью Facebook Graph Api

ответ

-1

Моя дорогая, просто пользуйтесь расширенным разрешением от пользователя либо с помощью кнопки входа в систему, либо с помощью 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
с вашим токеном доступа.

+0

@ TomGranot-Scalosub Как я могу? –

8

ПРИМЕЧАНИЕ: Ни одно из ниже не работает. Начиная с версии 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&center=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.

+0

Facebook сильно изменился. В версии 2.3 не поддерживается много вещей! – iamprem

3

Лучший способ - использовать функции 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/

0

Это может быть сделано с Graph API

Как сказано в документации, установите так парам до 30 дней назад. (Вычитание 30 дней, то есть 30 * 24 * 60 * 60 от текущего штампа времени будет обеспечивать значение или же можно использовать strtotime)

И, да, есть ограничение на количество вызовов API, как указано в Facebook platform policies, то ток пределы являются:

~ (5M MAU): 5 миллионов Авторизованные пользователи для приложения

~ (100M API вызовов в день)

~ (50М показов в день).

+0

Facebook API лежит. Это «мягкие» ограничения. На самом деле существует жесткий предел, который ХОРОШО ниже этих пределов для всего приложения. –

-1

Вы можете использовать этот вызов с маркером доступа из графа исследователя, где число является представителем page ID:

123123123123123?fields=posts.limit(5) 
0

17 августа 2016 года, FQL больше не доступен и не может быть запрошен ...

Я не понимаю, почему Facebook меняет весь SDK/API вместо его обновления.