В API Facebook, как я могу получить исходный объект из объекта уведомления? - PullRequest
2 голосов
/ 19 августа 2011

Поскольку уведомления не доступны в API Graph Facebook, я использую FQL для их получения, как указано в https://developers.facebook.com/docs/reference/fql/notification/.

То, что я хотел бы сделать, это использовать возвращаемую информацию для извлечения «исходного объекта». Поэтому, если уведомление «Боб прокомментировал ваш статус», я хочу найти этот объект статуса - и если Боб комментирует мою Заметку, или публикует сообщения на Стене для моего События и т. Д.

notification_id, sender_id и recipient_id, по-видимому, недостаточно для достижения этой цели. Поле href заманчиво близко - оно возвратит ссылку, по которой пользователь может щелкнуть, чтобы перейти на соответствующую страницу, но это не очень мне помогает, так как формат URL сильно отличается между "исходным объектом" типы Я не могу найти надежный способ превратить href в параметр, который я могу передать в Graph API.

Итак, если то, что я хочу сделать, возможно, то как лучше это сделать?

Мои мысли:

  1. Есть ли способ передать API 101 "дружественный пользователю" * и заставить его возвращать соответствующие результаты Graph API (или он должен возвращать соответствующий URL API Graph)?

  2. Есть ли другой способ, чтобы информация, возвращаемая запросом FQL «уведомление», могла использоваться или комбинироваться для создания правильного URL API Graph?

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

Я использую PHP и PHP SDK для Facebook, хотя это не похоже на проблему, связанную с PHP.

Заранее спасибо!

1 Ответ

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

Вы можете получить object_id, object_type из таблицы notification и использовать ее для получения исходного сообщения.Извините, это не было задокументировано в таблице уведомлений, но теперь задокументировано.

Например: select object_id, object_type from notification where recipient_id=<user_uid>

, которая возвращает что-то вроде:

[
  {
    "object_id": "<object_id_1>",
    "object_type": "group"
  },
  {
    "object_id": "<object_id_2",
    "object_type": "stream"
  },
]

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

https://graph.facebook.com/<object_id_1>?access_token=<access_token>
...