Обновления Facebook в реальном времени: подписка на страницу - PullRequest
2 голосов
/ 02 декабря 2011

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

В документации Facebook говорится, что это возможно, но никогда не видел, чтобы кто-нибудь достиг этого.

https://developers.facebook.com/docs/reference/api/realtime/

Ответы [ 3 ]

3 голосов
/ 19 мая 2013

Вам необходимо получить page_accesstoken, а затем добавить приложение в качестве вкладки. Вы можете сделать это получение токена доступа пользователя от администратора с помощью scope = manage_pages как только вы получите токен доступа пользователя, вы можете запросить меня / учетные записи. Будет отображаться что-то вроде

  {
      "category": "Community", 
      "name": "page name", 
      "access_token": "xxxxx", 
      "id": "1111111134678999", 
      "perms": [
        "ADMINISTER", 
        "EDIT_PROFILE", 
        "CREATE_CONTENT", 
        "MODERATE_CONTENT", 
        "CREATE_ADS", 
        "BASIC_ADMIN"
      ]
    }

Это xxx будет токен доступа к странице, с токеном доступа к странице вы должны добавить свое приложение в качестве вкладки. Вы можете сделать это по

https://graph.facebook.com/PAGEID/tabs?app_id=APPID&method=POST&access_token=xxx

И теперь вы будете получать запрос на ваш URL обратного вызова при каждом изменении страницы. Запрос выглядит примерно так.

{
    "object": "page",
    "entry": [
        {
            "id": "408518775908252",
            "time": 1360643280,
            "changes": [
                {
                    "field": "feed",
                    "value": {
                        "item": "like",
                        "verb": "add",
                        "user_id": 5900878
                    }
                }
            ]
        }
    ]
}

Надеюсь, это поможет.

1 голос
/ 29 декабря 2011

Попробуйте это:

try
{
  $me = $facebook->api('/me');
  $my_access_token = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=" .$fbconfig['appid'] ."&client_secret=" .$fbconfig['secret'] ."&type=client_cred"); 
  // SUBSCRIBE!   
  $subscribe = array( 'access_token'=> substr($my_access_token,13),
                      'object' => 'user',
                      'fields' => 'name,feed',
                      'callback_url' => $fbconfig['callback'], 
                      'verify_token' => $fbconfig['secret']);
  $subscribe = $facebook->api("/" .$fbconfig['appid'] ."/subscriptions", 'post', $subscribe);
  $parameters =  array("access_token" => substr($my_access_token,13) );
  $results = $facebook->api('/' .$fbconfig['appid'] .'/subscriptions', $parameters); 
}
catch (FacebookApiException $e)
{
  error_log($e);
}
1 голос
/ 02 декабря 2011

Когда вы подписываетесь на обновления в реальном времени от объектов страницы, вы будете получать уведомления только от страниц, которые добавили ваше приложение к себе.

Так же, как вы получаете уведомления только от пользователей, которые 'Если вы добавили приложение на страницу в виде вкладки, это эквивалент страницы, на которой выполняется проверка приложения.

См. https://developers.facebook.com/docs/appsonfacebook/pagetabs/ о том, как добавить приложение на страницу.

...