Я думаю, что вы должны использовать уведомление FQL.
Но уведомления на самом деле ограничены последними 7 днями.
Попробуйте этот запрос:
SELECT created_time, sender_id, title_html, href, object_type
FROM notification
WHERE recipient_id=me() and object_type = 'friend'
Обновление:
Другой подход, немного хитрый.
Вы должны иметь возможность взглянуть на старую дружбу в свой 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 сообщениями, в зависимости от того, что больше, однако вы можете использовать поля, зависящие от времени, такие как create_time, вместе с операторами FQL (например, <или>) для получения больший ассортимент постов.
https://developers.facebook.com/docs/reference/fql/stream/
Обновление 2:
Если вы хотите использовать только graph api, насколько я знаю, у вас такое же ограничение fql (т.е. вы ограничены последними 7 днями).
https://graph.facebook.com/me/notifications?include_read=1
Но в этом случае вы не можете фильтровать по object_type
, и вы должны найти все title
содержания "accepted your friend request"