En este documento se explica cómo llamar correctamente a la compatibilidad de la Messenger API for Instagram (también denominada API de mensajes de Instagram en las políticas para desarrolladores) con tu aplicación y obtener los mensajes de una cuenta profesional de Instagram.
El 23 de julio de 2024 lanzamos la nueva API de Instagram con el inicio de sesión con Instagram. Las cuentas profesionales de Instagram (ya sean cuentas empresariales o de creador) ya no tendrán que estar vinculadas a una página de Facebook para poder tener conversaciones con clientes, seguidores o usuarios de Instagram que estén interesados en su cuenta empresarial o de Instagram, administrar los comentarios ni publicar contenido multimedia. Obtén más información sobre esta nueva versión en nuestra publicación en el blog.
Consulta API de Instagram con el inicio de sesión con Instagram para obtener más información.
Necesitarás acceso a:
MODERATE en esa página Desarrolladores nuevos en la plataforma de Messenger
Desarrolladores con experiencia previa en la plataforma de Messenger
instagram_manage_messages en el identificador de acceso a la página y los webhooks de tema de Instagram estén suscritos.Puedes usar el inicio de sesión con Facebook para empresas o el inicio de sesión empresarial para Instagram a fin de solicitar los permisos necesarios a los usuarios de tu aplicación.
El proceso de inicio de sesión empresarial para Instagram permite al usuario completar las siguientes acciones durante dicho proceso:
Si quieres implementar el inicio de sesión empresarial para Instagram, consulta nuestra guía sobre el inicio de sesión empresarial para Instagram y, después, vuelve a esta guía.
Asegúrate de tener la sesión iniciada en tu cuenta de desarrollador de Facebook. A continuación, accede a la aplicación y activa el cuadro de diálogo del inicio de sesión con Facebook. Recuerda que tu cuenta de desarrollador de Facebook debe poder realizar tareas con al menos un nivel de acceso “Moderado” en la página de Facebook conectada a la cuenta de Instagram en la que quieres realizar la consulta.
Después de activar el cuadro de diálogo, haz clic en Aceptar para conceder a tu aplicación los permisos instagram_basic, instagram_manage_messages y pages_manage_metadata.
La API debe devolver un identificador de acceso de usuario. Captura el identificador para que la aplicación lo pueda usar en las próximas consultas. Si utilizas el explorador de la API Graph, se capturará automáticamente y se mostrará en el campo Identificador de acceso como referencia:

Consulta el extremo GET /me/accounts (se traduce en GET /{user-id}/accounts, que realiza una solicitud GET en el nodo de usuario de Facebook, en función del identificador de acceso).
curl -i -X GET \
"https://graph.facebook.com/v9.0/me/accounts?access_token={access-token}"
Debería devolver una colección de páginas de Facebook en las que el usuario de Facebook actual pueda realizar las tareas MANAGE, CREATE_CONTENT, MODERATE o ADVERTISE:
{
"data": [
{
"access_token": "EAAJjmJ...",
"category": "App Page",
"category_list": [
{
"id": "2301",
"name": "App Page"
}
],
"name": "Metricsaurus",
"id": "134895793791914", // capture the Page ID
"tasks": [
"ANALYZE",
"ADVERTISE",
"MODERATE",
"CREATE_CONTENT",
"MANAGE"
]
}
]
}
Captura el identificador de la página de Facebook que está conectada a la cuenta de Instagram que quieres consultar. Ten en cuenta la posibilidad de que los usuarios de tu aplicación puedan realizar tareas en varias páginas, lo que te obligará a introducir lógica que pueda determinar el identificador de la página correcto que se debe capturar (o a crear una interfaz de usuario donde los usuarios de tu aplicación puedan identificar la página correcta por ti).
Para poder realizar varias llamadas a la API de mensajes de Instagram, deberás utilizar el identificador de acceso a la página (PAT) asociado de la cuenta profesional de Instagram pertinente que se ha concedido previamente mediante el proceso de inicio de sesión con Facebook.
Envía una solicitud GET al extremo /{page-id} mediante tu identificador de acceso de usuario. Por ejemplo:
curl -i -X GET "https://graph.facebook.com/{page-id}?
fields=access_token&
access_token={user-access-token}" Cuando esta operación se completa correctamente, la aplicación recibe esta respuesta:
{
"access_token":"{page-access-token}",
"id":"{page-id}"
}
Para generar un identificador de acceso a la página de larga duración, puedes seguir la guía que encontrarás aquí.
Esta herramienta se está implementando actualmente para todos los desarrolladores. El proceso se completará durante las próximas semanas. Si no ves la configuración en el panel de aplicaciones, puedes utilizar los pasos 1 a 5 anteriores para generar identificadores de acceso a la página.
De manera opcional, si eres propietario de los activos (cuenta de Instagram y página de Facebook) que quieres incorporar a la compatibilidad de la API de Messenger con Instagram, puedes utilizar la herramienta de configuración de Instagram en el panel de aplicaciones para desarrolladores a fin de poder configurar fácilmente los identificadores de acceso a la página y los webhooks. Puedes encontrar la herramienta en el panel de aplicaciones para desarrolladores → Messenger → Configuración de Instagram. La manera actual de configurar identificadores y webhooks seguirá funcionando, pero esta herramienta proporcionará un procedimiento más simple para configurar el entorno.

Para poder administrar mensajes de Instagram mediante la API, las cuentas profesionales de Instagram deberán activar el botón de herramientas conectadas en la configuración de control de mensajes. Para acceder a esta configuración, ve a:
Configuración de Instagram > Mensajes y respuestas a historias > Controles de mensajes > Herramientas conectadas > activar “Permitir acceso a mensajes”
Utiliza el identificador de la página que has capturado y el identificador de acceso a la página (PAT) para consultar el extremo GET /{page-id}/conversations?platform=instagram:
curl -i -X GET \
"https://graph.facebook.com/v9.0/17841405822304914/conversations?platform=instagram&access_token={access-token}" Esta acción debería devolver los identificadores de todos los objetos de la conversación sobre el usuario de Instagram:
{
"data": [
{
"id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTM2MDk5MDc1MzYyOTgx"
},
{
"id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTYzMzQ2MzE5NjM1NDcy"
},
{
"id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTk3MTY0NjI2NzAyMjMw"
},
{
"id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MzkzNDI5MDYzMzkyNjU0"
}
}
Si puedes realizar esta consulta final correctamente, deberías poder realizar consultas con cualquiera de los extremos de la compatibilidad de la API de Messenger con Instagram. Solo tienes que consultar nuestras distintas guías y referencias para aprender qué puede hacer cada extremo y el permiso necesario.