К этой информации можно получить доступ.Обновления состояния отношений можно просматривать со следующими разрешениями: user_relationships
и read_stream
.Однако для извлечения точной истории (и связанных комментариев) вам придется проанализировать результат, и обновление отношения выглядит следующим образом:
{
"id": "10000xxxxxxxxxx_2yyyyyyyyyy",
"from": {
"name": "Foo Bar",
"id": "10000xxxxxxxxxx"
},
"story": "Foo Bar went from being \"in a relationship\" to \"single.\"",
"story_tags": {
"0": [
{
"id": 10000xxxxxxxxxxx,
"name": "Foo Bar",
"offset": 0,
"length": 9,
"type": "user"
}
]
},
"actions": [
{
"name": "Comment",
"link": "http://www.facebook.com/10000xxxxxxxxxx/posts/2yyyyyyyyyy"
},
{
"name": "Like",
"link": "http://www.facebook.com/10000xxxxxxxxxx/posts/2yyyyyyyyyy"
}
],
"type": "status",
"created_time": "2012-05-05T07:36:32+0000",
"updated_time": "2012-05-05T07:36:32+0000",
"comments": {
"data": [
{
"id": "10000xxxxxxxxxx_2yyyyyyyyyyy_7zzzzz",
"from": {
"name": "Foo Bar",
"id": "10000xxxxxxxxxx"
},
"message": "YaY",
"created_time": "2012-05-05T07:45:31+0000"
}
],
"count": 1
}
},
Когда в истории участвуют два пользователя (скажем:XXX связан с YYY), тогда в поле 'story_tags'
будут также теги, содержащие идентификатор другого пользователя.
Я думаю, что нет обновлений для разведенных, разлученных, овдовевших (не уверен).
Другие обновления отношений могут быть (не исчерпывающими), например:
Alice is in a relationship with Bob and it's complicated.
Alice is in an open relationship with Bob.
Alice is single.
Таким образом, чтобы извлечь обновление, должны быть выполнены два условия: поле 'story'
должно существовать и оно должно содержать одноотношения ключевых слов, холост, помолвлен или женат.
Получив идентификатор истории / публикации, можно легко извлечь комментарии.
Вызов API:
https://graph.facebook.com/me_or_id/feed
https://graph.facebook.com/me_or_id/posts
Вызов API: https://graph.facebook.com/me_or_id/statuses
не дал желаемого результата, даже с разрешениями user_status
и user_relationship_details
.
AFAIK, на данный момент это единственный способ.
Редактировать : Путь FQL:
В fql мы можем запросить таблицу потоков .В документации упоминается, что у каждого сообщения есть поле описания, которое не является нулевым, если это автоматически сгенерированное сообщение, то есть не созданное пользователем, например, когда пользователи стали друзьями или изменились отношения.Другие сообщения имеют поле сообщения (и поле описания null
).Я полагаю, что это поле описания аналогично полю story
для метода graph api.И такие автоматически сгенерированные посты будут иметь type
, установленный в 9, что не упомянуто в документации (объяснение для типа есть, но не для типа 9).В любом случае, мы можем сделать ограничительный запрос с этими дополнительными условиями и надеяться получить правильные данные, которые нам, возможно, придется проанализировать, чтобы удалить другие истории, но по крайней мере данные для анализа будут меньше.
Запрос:
SELECT post_id, type, description, comments FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0 AND type = 9
Вам нужно будет снова проанализировать поле описания для указанных выше ключевых слов.
Примечание: по какой-то причине я не смог получить комментарии по этому одному запросу (комментариимассив всегда был пустым), но когда я вызвал график api с post_id
из результата запроса, я смог получить комментарии.