En este documento se explica cómo realizar las siguientes tareas para una página de Facebook:
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
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.
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.
Una sola llamada a la API puede darte mucha información de las páginas en las que puedes realizar una tarea.
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.
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:
{ "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" ] }, ... ] }
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
.
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.
{ "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" ] }, ... ], }
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.
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.
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.
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
.
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 realiza correctamente, la aplicación recibirá una respuesta JSON con el valor de success
establecido en true
.
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:
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/v21.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
.
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.
curl -i -X GET "https://graph.facebook.com/v21.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
).
{ "data": [ { "setting": "USERS_CAN_POST", "value": false }, { "setting": "USERS_CAN_MESSAGE", "value": true }, { "setting": "USERS_CAN_POST_PHOTOS", "value": true }, ... ] }
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.
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 realiza correctamente, la aplicación recibe una respuesta JSON con el valor de success
establecido en true
.
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
.
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:
created_time
establecido en la hora en que se creó la opinión. recommendation_type
establecido en positive
o negative
.review_text
establecido en el contenido de la opinión.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" } }, ... ] }
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.
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 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 }
Obtén información sobre cómo publicar enlaces, fotos y vídeos en tu página.