2012-03-01 2 views

ответ

3

Я думаю, вы должны использовать уведомление 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"

+0

Мы используем график апи, Любую идею? – PrateekSaluja

+0

Вы пробовали https://graph.facebook.com/me/notifications?include_read=1 – freedev

0
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;