Поиск сообщений с помощью Facebook Graph Api - PullRequest
3 голосов
/ 03 февраля 2011

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

Ответы [ 6 ]

8 голосов
/ 03 февраля 2011

ПРИМЕЧАНИЕ. Ничто из приведенного ниже не работает. Начиная с версии 2.3 API Graph Facebook конечная точка поиска устарела.

Копирование отсюда в разделе "Поиск" :

Поиск

Вы можете искать по всем публичным объектам в социальном графе с 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

Вы также можете искать человека новостная лента пользователя, ограниченная этим друзей пользователя, добавив аргумент q на домашнее соединение URL:

* News Feed: https://graph.facebook.com/me/home?q=facebook

Это один из способов сделать это. Но лучше будет использовать FQL , который используется JavaScript SDK , с методом fb.dataquery . Что вы хотите сделать, это использовать потоковую таблицу , чтобы получить сообщения о статусе для пользователей.

Теперь, исходя из вашего вопроса, я понимаю, что вы предпочитаете использовать версию PHP вместо версии Javascript. В соответствии с этим вам нужно декодировать (используя json_decode) объект json, полученный этим URL:

https://graph.facebook.com/[USERNAME/USERID]?fields=posts&access_token=[A VALID ACCESS TOKEN]

Насколько я знаю, этому не должно быть предела. Однако, посмотрите на документы здесь .

3 голосов
/ 17 октября 2012

Лучший способ - использовать функции PHP file_get_contents с этим URL.

Если этот cURL не получит такой же ответ; просто помните, что любые ответы представлены в формате JSON, поэтому используйте json_decode, чтобы начать обработку информации

Типичный фейсбук должен выглядеть так:

$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 голосов
/ 24 июня 2016

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

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

0 голосов
/ 23 июня 2015

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

123123123123123?fields=posts.limit(5)
0 голосов
/ 23 ноября 2012

Это можно сделать с помощью Graph API

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

И, да, существует ограничение на количество вызовов API, как указано в Правилах платформы Facebook , текущие ограничения :

~ (5 млн. MAU): 5 миллионов аутентифицированных пользователей для приложения

~ ( 100 миллионов вызовов API в день )

~ (50 млн. Показов в день).

0 голосов
/ 03 февраля 2011

Дорогой, просто возьми расширенное разрешение от пользователя, используя кнопку входа или URL входа (в случае php sdk), тогда тебе просто нужно взять токен доступа, позвони, сделай json call, чтобы получить информацию, какую захочешь.

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