Administrar una página

En este documento se explica cómo realizar las siguientes tareas para una página de Facebook:

  • Obtener una lista de las páginas en las que puedes realizar una tarea, incluido lo siguiente:
    • Tareas concretas que puedes realizar en cada página.
    • Identificadores de acceso a la página para cada página que puedes usar para probar las llamadas a la API.
  • Obtener y actualizar los detalles de una página.
  • Obtener y actualizar la configuración de una página.
  • Recibir notificaciones sobre los cambios sugeridos que Meta implementará en una página.
    • Aceptar o rechazar estos cambios sugeridos.
  • Obtener las opiniones de una página.
  • Bloquear a una persona de una página.

Antes de empezar

En esta guía se supone que has leído la información general sobre la API de páginas.

En el caso de una persona que pueda realizar tareas en la página, tendrás que implementar el inicio de sesión con Facebook para solicitar los siguientes permisos y recibir un identificador de acceso a la página o de usuario:

  • pages_manage_engagement
  • pages_manage_metadata
  • pages_manage_posts
  • pages_read_engagement
  • pages_read_user_engagement
  • pages_show_list
  • El permiso publish_video si vas a publicar un vídeo en la página.

Si utilizas un usuario del sistema del negocio en las solicitudes de la API, es necesario tener el permiso business_management.

El usuario de la aplicación debe poder realizar las tareas CREATE_CONTENT, MANAGE o MODERATE en la página en las solicitudes de la API.

Prácticas recomendadas

Al probar una llamada a la API, puedes incluir el parámetro access_token establecido en el identificador de acceso. Sin embargo, al realizar llamadas seguras desde la aplicación, debes usar la clase de identificador de acceso.

Se ha aplicado formato a los ejemplos de solicitudes para mejorar la legibilidad. Sustituye los valores en negrita y cursiva, como page_id, por tus valores.

Páginas, tareas e identificadores

Una sola llamada a la API puede darte mucha información de las páginas en las que puedes realizar una tarea.

Obtener las páginas

Para obtener una lista de todas las páginas en las que puedes realizar tareas, las tareas que puedes realizar en cada página y un identificador de acceso a la página de corta duración para cada página, envía una solicitud GET al extremo /user_id/accounts con un identificador de acceso de usuario.

Ejemplo de solicitud

curl -i -X GET 
     "https://graph.facebook.com/user_id/accounts"

Si la operación se realiza correctamente, la aplicación recibirá una respuesta JSON con una matriz de objetos de página. Cada objeto de página contiene lo siguiente:

  • El nombre de la página.
  • El identificador de la página.
  • La categoría de la página, el nombre de la categoría y el identificador.
  • Un identificador de acceso a la página de corta duración.
  • Todas las tareas que el usuario puede realizar en la página.

Ejemplo de respuesta

{
  "data": [
    {
      "access_token": "{facebook-for-developers-page-access-token}",
      "category": "Internet Company",
      "category_list": [
        {
          "id": "2256",
          "name": "Internet Company"
        }
      ],
      "name": "Facebook for Developers",
      "id": "{facebook-for-developers-page-id}",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT"
      ]
    },
    {
      "access_token": "{my-outlandish-stories-page-access-token}",
      "category": "Blogger",
      "category_list": [
        {
          "id": "361282040719868",
          "name": "Blogger"
        }
      ],
      "name": "My Outlandish Stories",
      "id": "{my-outlandish-stories-page-id}",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    },
...
  ]
}

Obtener las tareas de otros usuarios

Si puedes realizar la tarea MANAGE en la página, puedes obtener una lista de otros usuarios que pueden realizar tareas en esa página, incluidas las tareas que cada uno de ellos puede realizar.

Para obtener una lista de los usuarios y las tareas que pueden realizar en la página, envía una solicitud GET al extremo /page_id/roles.

Ejemplo de solicitud

curl -i -X GET "https://graph.facebook.com/page_id/roles"

Si la operación se realiza correctamente, la aplicación recibe una respuesta JSON con el nombre del usuario, su identificador específico de la página y las tareas que cada usuario puede realizar en una página.

Ejemplo de respuesta

{
  "data": [
    {
      "name": "Person One",
      "id": "page_scoped_id_for_one"
        "tasks": [
          "ANALYZE"
        ]
    },
    {
      "name": "Person Two",
      "id": "page_scoped_id_for_two",
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    },
...
  ],
}

Detalles de la página

Si puedes realizar la tarea MANAGE en la página, puedes usar un identificador de acceso a la página o, si la aplicación se ha aprobado para la función de acceso al contenido público de la página, puedes usar un identificador de acceso de usuario para ver los detalles de una página, como la información, el correo electrónico, el horario comercial, etc.

Obtener los detalles

Para obtener los detalles de una página, envía una solicitud GET al extremo /page_id con el parámetro fields establecido en los detalles de la página que quieres ver.

Nota: Puedes usar el extremo /pages/search para buscar identificadores de páginas cuando usas la función de acceso al contenido público de la página.

Ejemplo de solicitud

curl -i -X GET "https://graph.facebook.com/page_id \
     ?fields=about,attire,bio,location,parking,hours,emails,website"

Si la operación se realiza correctamente, la aplicación recibe una respuesta JSON con los valores de los campos que has solicitado. Si un campo no se devuelve en la respuesta, la página no tiene establecido ese valor. Por ejemplo, si la página no tiene establecido el campo attire, dicho campo no se devolverá en la respuesta.

Actualizar los actualización

Si puedes realizar la tarea MANAGE en la página, puede usar un identificador de acceso a la página para enviar una solicitud POST al extremo /page_id con los parámetros que quieras actualizar, como el parámetro about.

Ejemplo de solicitud

curl -i -X POST "https://graph.facebook.com/v19.0/page_id" \
     -H "Content-Type: application/json" \
     -d '{
           "about":"This is an awesome cafe located downtown!",
         }'

Si la operación se realiza correctamente, la aplicación recibirá una respuesta JSON con el valor de success establecido en true.

Cambios propuestos por Meta

En ocasiones, Meta propondrá cambios en los detalles de la página, como corregir un error tipográfico o actualizar las categorías de la página para ayudar a los usuarios a encontrarla mejor. Para recibir estas notificaciones, debes suscribirte al webhook page_upcoming_change o page_change_proposal.

Cuando recibas la notificación, puedes seguir uno de los procesos siguientes:

  • No hagas nada y los cambios se aplicarán en el momento indicado en la notificación.
  • Acepta activamente los cambios para que se apliquen inmediatamente.
  • Rechaza activamente los cambios para que no se apliquen.

Aceptar o rechazar un cambio propuesto

Para aceptar o rechazar activamente un cambio propuesto, envía una solicitud POST al extremo /page_change_proposal_id con el campo accept establecido en true para aceptar el cambio o en false para rechazarlo. El parámetro page_change_proposal_id es el valor de proposal.id que recibiste en la notificación del webhook page_upcoming_change o el valor de value.id que recibiste en la notificación del webhook page_change_proposal.

curl -i -X POST "https://graph.facebook.com/v19.0/page_change_proposal_id" \
     -H "Content-Type: application/json" \
     -d '{
           "accept":"true",
         }'

Si la operación se realiza correctamente, la aplicación recibe una respuesta JSON con el valor de success establecido en true.

Configuración de la página

Si puedes realizar la tarea MANAGE en la página, puedes usar un identificador de acceso a la página para enviar una solicitud GET al extremo /page_id/settings a fin de obtener una lista de toda la configuración de dicha página.

Ejemplo de solicitud

curl -i -X GET "https://graph.facebook.com/v19.0/page_id/settings"

Si la operación se realiza correctamente, la aplicación recibirá una respuesta JSON con una matriz de objetos en la que cada objeto es el parámetro setting establecido en una configuración de la página y el valor (true o false).

Ejemplo de respuesta

{
  "data": [
    {
      "setting": "USERS_CAN_POST",
      "value": false
    },
    {
      "setting": "USERS_CAN_MESSAGE",
      "value": true
    },
    {
      "setting": "USERS_CAN_POST_PHOTOS",
      "value": true
    },
    ...
  ]
}

Actualizar una configuración

Para actualizar la configuración de una página, envía una solicitud POST al extremo /page_id/settings con el parámetro option establecido en la configuración que quieres actualizar.

Ejemplo de solicitud

curl -i -X POST "https://graph.facebook.com/v19.0/page_id/settings" \
     -H "Content-Type: application/json" \
     -d '{
           "option":{"USERS_CAN_MESSAGE": "true"},
         }'

Si la operación se realiza correctamente, la aplicación recibe una respuesta JSON con el valor de success establecido en true.

Obtener las opiniones

Para obtener las opiniones de una página, incluido el nombre del autor, su identificador específico de la página, si fue una recomendación positiva o negativa y el texto de la opinión, envía una solicitud GET al extremo /page_id/ratings.

Ejemplo de solicitud

curl -i -X GET "https://graph.facebook.com/page_id/ratings" 

Si la operación se realiza correctamente, la aplicación recibe una matriz JSON con objetos de opinión. Cada objeto contiene lo siguiente:

  • El parámetro created_time establecido en la hora en que se creó la opinión.
  • El parámetro recommendation_type establecido en positive o negative.
  • El parámetro review_text establecido en el contenido de la opinión.
  • Un objeto reviewer con los valores de name y id del usuario que escribió esa opinión.
{
  "data": [
    {
      "created_time": "unixtimestamp",
      "recommendation_type": "positive",
      "review_text": "I love this page!",
      "reviewer": {
        "name": "Person One",
        "id": "psid_for_one"
      }
    },
    {
      "created_time": "unixtimestamp",
      "recommendation_type": "positive",
      "review_text": "This page is wonderful!",
      "reviewer": {
        "name": "Person Two",
        "id": "psid_for_two"
      }
    },
...
  ]
}

Bloquear a una persona

Para bloquear a una persona para que no comente en una página, envía una solicitud POST al extremo /page_id/blocked con el parámetro user establecido en el identificador específico de la página de la persona que quieres bloquear.

Ejemplo de solicitud

curl -i -X POST "https://graph.facebook.com/v19.0/page_id/blocked"
     -H "Content-Type: application/json" \
     -d '{
           "user":"psid_to_block",
         }'

Si la operación se realiza correctamente, la aplicación recibe una respuesta JSON con el identificador específico de la página establecido en true.

{
 "psid_to_block": true
}

Siguientes pasos

Obtén información sobre cómo publicar enlaces, fotos y vídeos en tu página.