Различать упомянутый пост и пост на стене - PullRequest
0 голосов
/ 24 августа 2011

Когда вы запрашиваете в таблице потоков содержимое страницы фан-страницы, вы возвращаете содержимое, опубликованное на стене фан-страницы с упоминанием страницы, а также сообщения от фаната на собственной стене, в которых упоминается страница. Есть ли способ различить эти два типа в ответе потока?

Например, вот фан-страница http://www.facebook.com/signalhq, которая получает сообщение от пользователя, который отметил страницу в своем собственном сообщении

http://www.facebook.com/jeff.judge/posts/10150356144351153

Есть ли способ отличить этот пост от других постов на этой стене? Я не могу найти ничего в API потока fql, чтобы выполнить это.

Ответы [ 3 ]

3 голосов
/ 25 августа 2011

В качестве небольшой модификации поста ifaour вы должны выполнить этот FQL-запрос:

SELECT target_id, post_id, message, actor_id, tagged_ids FROM stream WHERE source_id = PAGEID

Поле target_id позволит вам узнать объект, на котором было сделано сообщение. Если это пользователь разместил на своей стене (и отметил страницу), то target_id не будет идентификатором страницы. Если пользователь, размещенный на стене страницы и пометивший страницу в этом сообщении, target_id будет идентификатором страницы.

Проверьте target_id в потоковых документах FQL, чтобы прояснить это: https://developers.facebook.com/docs/reference/fql/stream/

Редактировать: Уточнение результатов, которые вы должны увидеть:

Пост Страницы на Стене Страниц:

  • target_id = null
  • actor_id = PAGEID

Пост пользователя на Стене Страниц:

  • target_id = PAGEID
  • actor_id = USERID

Сообщение пользователя на своей стене, помечающее страницу:

  • target_id = null
  • actor_id = USERID

Надеюсь, это поможет вам дифференцироваться?

0 голосов
/ 25 августа 2011

Самый простой способ - получить поле tagged_ids:

SELECT post_id, message, actor_id, tagged_ids FROM stream WHERE source_id = 'PAGE_ID'

Это вернет что-то вроде:

[
  {
    "post_id": "PAGE_ID_255888737767539",
    "message": "PAGE_NAME test",
    "actor_id": MY_ID,
    "tagged_ids": [
      PAGE_ID
    ]
  },
  {
    "post_id": "PAGE_ID_156571787756776",
    "message": "",
    "actor_id": PAGE_ID,
    "tagged_ids": []
  }
]

Если идентификатор страницы представлен в поле tagged_ids, а actor_id НЕ является идентификатором страницы, то страница упоминается пользователем.

0 голосов
/ 25 августа 2011

Когда вы извлекаете этот пост в формате JSON из Graph-API, в нем также есть объекты "от" и "до" ...

Они должны быть в состоянии помочь вам различить два сообщения

Е.И.В.!

...