Cómo suscribirse a actualizaciones en tiempo real para el muro de una página de Facebook

Los documentos de actualización en tiempo real de Facebook ahora dicen que puedes obtener el feed para una página:

Puede suscribirse al feed de la página de la misma forma que se suscribe al feed de un usuario: el tema de la suscripción debe ser ‘user’ y el campo de suscripción debe ser ‘feed’.

Mi comprensión de esto es que necesito publicar en la API de gráficos para suscribirme así:

curl -d \ "object=user&fields=feed&callback_url=$CALLBACKURL&verify_token=$SECRET" \ "https://graph.facebook.com/$PAGEID/subscriptions?access_token=$OAUTHTOKEN" 

(Este es un script bash.) Aquí $CALLBACKURL está configurado correctamente siguiendo su código de ejemplo . (Al menos creo que es correcto, puedo agregar suscripciones con éxito). El $OAUTHTOKEN es el que corresponde a mi aplicación de Facebook.
Y $PAGEID es la identificación de objeto de Facebook de la página en la que me gustaría recibir actualizaciones en tiempo real.

Cuando hago esto, la llamada parece funcionar, no aparece ningún mensaje de error. Mi callback se llama. Pero ciertamente no me notifican cuando ocurre algo en el feed de la página.

Entonces, ¿qué falta? ¿La página necesita instalar la aplicación cuya token oauth estoy usando? ¿O de alguna manera necesito obtener un token oauth para la página al iniciar sesión como la página?

No sé si esto puede ser útil, pero le diré dónde estoy para el avance de página de actualización en tiempo real:

(permisos: manage_page, offline_access, read_stream)

  1. su aplicación debe estar vinculada a la página (luego, instale la aplicación pero no es obligatorio tener una pestaña, por ejemplo, crear la pestaña https://graph.facebook.com/PAGE_ID/tabs?app_id=APP_ID&method=POST&access_token=PAGE_ACCESS_TOKEN y eliminar la pestaña TAB_ID = PAGE_ID. ‘/ Tabs / app _’. APP_ID; https://graph.facebook.com/TAB_ID?method=DELETE&access_token=PAGE_ACCESS_TOKEN )

     function page_access_token($page_id,$access_token){ 
    $page_token_url="https://graph.facebook.com/" . $page_id . "?fields=access_token&" . $access_token; $response = file_get_contents($page_token_url); $resp_obj = json_decode($response,true); $page_access_token = $resp_obj['access_token']; return $page_access_token; }

    function page_access_token($page_id,$access_token){
    $page_token_url="https://graph.facebook.com/" . $page_id . "?fields=access_token&" . $access_token; $response = file_get_contents($page_token_url); $resp_obj = json_decode($response,true); $page_access_token = $resp_obj['access_token']; return $page_access_token; }

    función page_tabs_create ($ page_id, $ app_id, $ page_access_token) {

    $ page_settings_url = ” https://graph.facebook.com/ “.
    $ page_id. “/tabs?app_id=”.$app_id.”&method=POST&access_token=”. $ page_access_token;
    $ response = file_get_contents ($ page_settings_url);
    $ resp_obj = json_decode ($ respuesta, verdadero);
    devolver $ resp_obj;
    }

    function page_tabs_delete ($ tab_id, $ page_access_token) {

    $ page_settings_url = ” https://graph.facebook.com/ “. $ tab_id. “? method = DELETE & access_token =”. $ page_access_token;
    $ response = file_get_contents ($ page_settings_url);
    $ resp_obj = json_decode ($ respuesta, verdadero);

    devolver $ resp_obj;
    }

  2. Suscripción: para suscribirse debe ser como un “usuario” y por lo tanto object = user fields = feed pero debe agregar nuevos campos porque de lo contrario recibe los comentarios y le gusta el muro por lo que debe agregar “estado” para recibir los artículos publicados (mi problema es obtener otro contenido, como enlaces, he logrado agregar “enlace” como campos, pero no recibo notificaciones cuando se publica un enlace)

    $ param = array (‘access_token’ => $ access_token, ‘object’ => ‘user’, ‘fields’ => ‘feed, estado, enlace’ ‘callback_url’ => ‘http: // ****** ** fbcallback.php ” verify_token ‘=>’ *********** ‘,’ include_values ​​’=>’ true ‘);

    POST https://graph.facebook.com/APP_ID/subscriptions

mi inglés no es muy bueno, pero espero que te ayude, por mi parte, todavía estoy buscando realmente todas las actualizaciones de la pared (enlaces, videos …)

He estado investigando sobre esto y estoy obteniendo los empujes para las páginas también.

  1. al suscribirse, asegúrese de que object = user y fields = feed, el estado está presente.

  2. Asegúrese de que la aplicación se agregue a su página, solo entonces recibirá la actualización.

  3. La respuesta recibida de Facebook es la siguiente:

{“entrada”: [{“id”: ” * ** * *** “, “uid”: ” ** * ** “, “time”: 1332940650, “changed_fields”: [“estado”]}] , “objeto”: “usuario”}

donde * ** * es mi pageId.

La inserción anterior se recibe al agregar una nueva publicación, ya que puedes ver que change_feild es el estado, pero cuando publicamos en la pared, los fields_changes viene como feed. El siguiente enlace me ayudó a recibir mensajes para la página.

http://bugs.developers.facebook.net/show_bug.cgi?id=18048

En primer lugar, la suscripción a la actualización en tiempo real para la página / feed no funciona. Ver: http://bugs.developers.facebook.net/show_bug.cgi?id=18048

¿La página necesita instalar la aplicación cuya token oauth estoy usando?

¿O de alguna manera necesito obtener un token oauth para la página al iniciar sesión como la página?

Si te entiendo correctamente, solo necesitas la aplicación access_token https://graph.facebook.com/oauth/access_token?client_id=your_app_id&client_secret=your_secret&grant_type=client_credentials

Primero comencé a leer los documentos sobre actualizaciones en tiempo real pensando que podría entregar los datos reales. Pero, como me di cuenta, ese no es el propósito.

Las actualizaciones en tiempo real son solo para decirle que algo ha cambiado, y una vez que sucede, puede llamar a la API con el método convencional.

Además, parece que hay un error en esta parte, the subscription topic should be 'user' and the subscription field should be 'feed' . El tema de la suscripción, en realidad, debe ser ‘página’. (¿Has pensado lo mismo?)

Y al suscribirse en el feed de página al igual que el feed de usuario, significa que puede recibir notificaciones de actualización, no los datos en sí.

No estoy seguro si este es un error común, pero lo estoy publicando por si acaso.

Actualmente estoy trabajando en una herramienta de minería de datos que necesitará actualizaciones en tiempo real. Pero primero, estoy centrado en los datos en sí, por lo que aún no puedo publicar ningún ejemplo. (Editaré esta respuesta cuando implemente esta parte)

Lo que puedo decir sobre tu problema es:

1) Mira que tu $ PAGEID no es correcto. En realidad, es su APPID en su lugar.

2) Después de suscribirse, ¿su suscripción apareció en la lista al llamar a https://graph.facebook.com//subscriptions?access_token=... ?

3) Con la suscripción de usuario, ¿funciona? ¿O es solo con páginas?

Para esto, necesita configurar una URL de punto final que reciba solicitudes HTTP GET (para la verificación de suscripciones) y POST (para datos de cambios reales) de Facebook.

Luego, debe hacer una POST en la URL gráfica del API https://graph.facebook.com//subscriptions?access_token= para suscribirse, y estar listo para manejar la solicitud de verificación.

Luego, para enumerar las suscripciones, solo realice una solicitud GET en la misma url, https://graph.facebook.com//subscriptions?access_token= , que devuelve un contenido codificado en JSON que enumera sus suscripciones , hasta uno por tipo de objeto.

Antes de comenzar a esperar las notificaciones, debe verificar si la URL está siendo atacada o no por FB.

Verifique la salida de los siguientes:

“https://graph.facebook.com/”.FACEBOOK_APP_ID.”/subscriptions?”.$appToken.”&client_secret=”.FACEBOOK_SECRET;

Esto devolverá callback_url si está configurado correctamente.

    Intereting Posts