2011-04-28 2 views

ответ

2

Вы должны использовать API в режиме реального времени от Facebook: http://developers.facebook.com/docs/api/realtime/

Чтобы сделать то, что вы просите, вы должны подписаться на page объектов и их feed связи.

Для добавления подписки вы должны послать запрос POST в:

https://graph.facebook.com/<app-id>/subscriptions?access_token=... 

И для этого вам нужен маркер доступа, который вы можете получить по адресу:

https://graph.facebook.com/oauth/access_token?client_id=<app-id>&client_secret=<app-secret>&grant_type=client_credentials 

Поля, которые должны в данных POST:

  • object - Тип объекта для мониторинга, например «Пользователь» или «разрешения». Вы будете контролировать все объекты этого типа; например, всех пользователей вашего приложения.
  • fields - Список, разделенный запятой. Это список свойств или соединений для указанного объекта. Например, чтобы отслеживать изменения имени пользователя, изображения, друзей и ленты новостей, вы должны указать «имя, картинка, друзья, фид»
  • callback_url - URL-адрес обратного вызова, на который Facebook будет публиковать обновления подписки.

И вы можете указать

  • verify_token - Абонент, предоставляемый непрозрачный маркер, который будет эхом в запросе проверки, чтобы помочь абоненту в определении, какой запрос подписки проверяется. Если это не включено, маркер не будет включен в запрос проверки. Это из спецификации PubSubHubbub.

После того, как ваш обратный вызов URL подтвержден, вы будете получать обновления при изменении данных в подаче страницы на вашем обратный вызов URL в качестве объектов JSON, вот пример для пользователя:

{ 
"object": "user", 
"entry": 
[ 
    { 
     "uid": 1335845740, 
     "changed_fields": 
     [ 
      "name", 
      "picture" 
     ], 
     "time": 232323 
    }, 
    { 
     "uid": 1234, 
     "changed_fields": 
     [ 
      "friends" 
     ], 
     "time": 232325 
    } 
] 
} 

Вы также можете сделать GET и DELETE по тому же адресу, чтобы получить список ваших подписки и удалить подписки.

Но все детали в facebook doc

+3

Один небольшой разницы, однако, что в отличие от Twitter потокового API, Facebook обновления в реальном времени не дает фактическое изменение в качестве корма. Это просто указывает, что есть обновление для указанного объекта. Затем нужно явно вытащить объект и выяснить изменение. – Balakrishnan

+0

есть ли какой-нибудь пример кода в Ruby? Я немного искал, но, похоже, не так много использует график api в реальном времени ... это немного странно. – Mesut

+0

В теории это теперь работает, чтобы получать обновления на стене на странице, но я не могу заставить его работать. – Leopd