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 páginas en las que se puede realizar una tarea, incluidas las siguientes:
    • Tareas específicas que puedes realizar en cada página
    • Tokens de acceso de 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 cambios sugeridos que Meta implementará en una página
    • Aceptar o rechazar estos cambios sugeridos
  • Obtener opiniones sobre una página
  • Bloquear a una persona en una página

Antes de comenzar

En esta guía, se asume que leíste la información general de la API de páginas.

En relación con una persona que puede realizar tareas en la página, es necesario que implementes el inicio de sesión con Facebook para solicitar los siguientes permisos y recibir un token 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 publicas un video en la página

Si utilizas un usuario del sistema comercial en tus solicitudes a la API, es necesario que cuentes con el permiso business_management.

El usuario de tu app debe poder realizar las tareas CREATE_CONTENT, MANAGE y/o MODERATE de 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 configurado en tu token de acceso. Sin embargo, para hacer llamadas seguras desde tu app, usa la clase de token de acceso.

Se modificó el formato de los ejemplos de solicitudes para facilitar la lectura. Reemplaza los valores en negrita y en cursiva, como page_id, por tus propios valores.

Páginas, tareas y tokens

Con una sola llamada API puedes obtener mucha información sobre las páginas en las que puedes realizar una tarea.

Obtener tus 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 token de acceso de corta duración para cada página, envía una solicitud GET al punto de conexión /user_id/accounts usando un token de acceso de usuario.

Ejemplo de solicitud

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

Si la operación se procesa correctamente, tu app 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 token 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"
      ]
    },
...
  ]
}

Consultar tareas de otros

Si puedes realizar la tarea MANAGE en la página, puedes obtener una lista de otras personas que pueden realizar tareas en esa página, incluidas las tareas que cada persona puede realizar.

Para obtener una lista de personas y las tareas que pueden realizar en la página, envía una solicitud GET al punto de conexión /page_id/roles.

Ejemplo de solicitud

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

Si la solicitud se procesa correctamente, tu app recibirá una respuesta JSON con el nombre de la persona, su identificador específico de la página y las tareas que cada persona 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 token de acceso a la página o, si tu app cuenta con la aprobación para usar la función de acceso al contenido público de la página, puedes usar un token de acceso de usuario para ver los detalles de una página, como la información general, el correo electrónico, los horarios de operación, etc.

Obtener detalles

Para obtener los detalles de una página, envía una solicitud GET al punto de conexión /page_id con el parámetro fields configurado en los detalles de la página que deseas ver.

Nota: Puedes usar el punto de conexión /pages/search para encontrar identificadores de la página 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 procesa correctamente, la app recibirá una respuesta JSON con el valor de los campos que solicitaste. Si no se muestra un campo en la respuesta, significa que la página no tiene ese valor configurado. Por ejemplo, si la página no tiene definido el campo attire, este campo no aparecerá en la respuesta.

Actualizar detalles

Si puedes realizar la tarea MANAGE en la página, puedes utilizar un token de acceso a la página para enviar una solicitud POST al punto de conexión /page_id con los parámetros que deseas actualizar, como about.

Ejemplo de solicitud

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

Si la operación se procesa correctamente, tu app recibirá una respuesta JSON con success configurado en true.

Cambios propuestos por Meta

En algunas ocasiones, Meta propondrá cambios en los detalles de tu página, como corregir un error tipográfico o actualizar las categorías de la página para ayudar a las personas a encontrar tu página de manera más efectiva. Para recibir estas notificaciones, debes estar suscrito a los webhooks page_upcoming_change y/o page_change_proposal.

Una vez que recibas la notificación, tienes las dos siguientes opciones:

  • No hacer nada y los cambios se implementarán en el momento designado en la notificación
  • Aceptar activamente los cambios, que se implementarán de inmediato
  • Rechazar activamente los cambios, que no se implementarán

Aceptar o rechazar un cambio propuesto

Para aceptar o rechazar un cambio propuesto de manera activa, envía una solicitud POST al punto de conexión /page_change_proposal_id con el campo accept configurado en true para aceptar el cambio o en false para rechazarlo. El page_change_proposal_id es el valor de proposal.id que recibiste en la notificación de webhook page_upcoming_change o el valor de value.id que recibiste en la notificación de webhook page_change_proposal.

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

Si la operación se procesa correctamente, tu app recibirá una respuesta JSON con success configurado en true.

Configuración de la página

Si puedes realizar la tarea MANAGE en la página, puedes utilizar un token de acceso a la página para enviar una solicitud GET al punto de conexión /page_id/settings para obtener una lista de todas las configuraciones de esa página.

Ejemplo de solicitud

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

Si la operación se procesa correctamente, tu app recibirá una respuesta JSON con una matriz de objetos, donde cada objeto tiene el campo setting configurado en una configuración de la página y el campo value configurado en true o en 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 las configuraciones de una página, envía una solicitud POST al punto de conexión /page_id/settings donde el valor del parámetro option sea la configuración que deseas actualizar.

Ejemplo de solicitud

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

Si la operación se procesa correctamente, tu app recibirá una respuesta JSON con success configurado en true.

Consultar opiniones

Puedes consultar las opiniones de una página, incluido el nombre del autor, su identificador específico de la página, si se trata de una recomendación positiva o negativa, y el texto de la opinión. Para hacerlo, envía una solicitud GET al punto de conexión /page_id/ratings.

Ejemplo de solicitud

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

Si la operación se completa correctamente, la app recibirá una matriz JSON con los objetos de opinión. Cada objeto contiene lo siguiente:

  • created_time configurado en la hora en que se creó la opinión,
  • recommendation_type configurado en positive o negative
  • review_text configurado en el contenido de la opinión
  • un objeto reviewer con el name y id de la persona que escribió la 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 y evitar que deje comentarios en una página, envía una solicitud POST al punto de conexión /page_id/blocked con el parámetro user configurado en el identificador específico de la página de la persona que deseas bloquear.

Ejemplo de solicitud

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

Si la operación se procesa correctamente, tu app recibirá una respuesta JSON con el identificador específico de la página configurado en true.

{
 "psid_to_block": true
}

Próximos pasos

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