Нам нужно получить число друзей, добавленных пользователем Facebook в прошлом месяце. Мы искали в Graph API, но не получили никакого решения.Как получить количество друзей, добавленных пользователем facebook в определенное время?
ответ
Я думаю, вы должны использовать уведомление FQL.
Но уведомление на самом деле ограничено до последних 7 дней.
Попробуйте этот запрос:
SELECT created_time, sender_id, title_html, href, object_type
FROM notification
WHERE recipient_id=me() and object_type = 'friend'
Update:
Другой подход, немного сложнее.
Вы должны быть в состоянии взглянуть на старой дружбе в вашей stream
:
SELECT created_time, description FROM stream WHERE source_id = me()
and (strpos(lower(description),'are now friends') > 0
or strpos(lower(description),'is now friends') > 0)
limit 50
Таким образом, вы получите все строки, содержащие предложения are now friends
или is now friends
, (обратите внимание, что предложения слова зависит от клиента() локаль? настройки). Таким образом, вы будете соответствовать все строки:
- X и Y теперь друзья
- X теперь дружит с X и Y ...
Каждый запрос таблицы потока ограничен к предыдущим 30 дням или 50 сообщениям, в зависимости от того, что больше, однако вы можете использовать определенные по времени поля, такие как created_time, вместе с операторами FQL (например, < или>), чтобы получить гораздо больший диапазон сообщений. https://developers.facebook.com/docs/reference/fql/stream/
Update 2:
Если вы хотите использовать только граф апи, насколько я знаю, у вас есть такой же ограничение FQL (т.е. вы ограничены за 7 дней).
https://graph.facebook.com/me/notifications?include_read=1
Но этот случай, вы не можете фильтровать object_type
и вы должны найти все title
containings "accepted your friend request"
try this..
$count=0;
$fbid=xxxxx;
$onemonthbefore = strtotime(date("Y-m-d",strtotime("-1 Months")));
$ss=urlencode("SELECT created_time,description_tags,source_id,description FROM stream WHERE source_id = xxxxxx and (strpos(lower(description),'are now friends') > 0 or strpos(lower(description),'is now friends') > 0) limit 100");
$sql="https://graph.facebook.com/fql?q=$ss&access_token=xxxxxxxxx&format=json& date_format=U";
$new =file_get_contents($sql);
$new =json_decode($new);
foreach ($new->data as $data)
{
if($data->created_time > $onemonthbefore)
{
foreach ($data->description_tags as $tags)
{
foreach ($tags as $friend)
{
if($friend->id !=$fbid)
{
$count++;
}
}
}
}
}
echo "new friends=".$count;
Мы используем график апи, Любую идею? – PrateekSaluja
Вы пробовали https://graph.facebook.com/me/notifications?include_read=1 – freedev