El siguiente contenido procede de la documentación sobre el producto Webhooks. Consulta dicha documentación si no estás familiarizado con este producto.
Los webhooks para Instagram te permiten recibir notificaciones en tiempo real cuando alguien comenta en los objetos multimedia de los usuarios de tu app, cuando menciona con @ a los usuarios de tu app o cuando vencen las historias de los usuarios de tu app.
Para recibir notificaciones de webhooks en tiempo real, es necesario cumplir con los siguientes requisitos:
Si los permisos de la app no tienen nivel de acceso avanzado, la app no recibe las notificaciones de webhooks.
media
.-1
.comments
y live_comments
. Crea un punto de conexión que acepte y procese webhooks. Durante la configuración, selecciona el objeto API Graph de Instagram, haz clic en Configurar y suscribe uno o varios campos de Instagram.
Campo | Descripción | Son necesarios estos permisos: |
---|---|---|
Comentarios en un contenido multimedia de Instagram que pertenece al usuario de Instagram de tu app. Se devolverán | ||
Comentarios en un contenido multimedia de Instagram en vivo que pertenece al usuario de Instagram de tu app. | ||
@menciones para el usuario de Instagram de tu app en un comentario. | ||
Métricas que describen interacciones en una historia. Se envían una hora después de que caduca la historia. |
Tu app debe activar las suscripciones a la página en la página conectada a la cuenta del usuario de la app. Para ello, debes enviar una solicitud POST
al perímetro Apps suscritas a la página y suscribirte a cualquier campo de la página.
POST /{page-id}/subscribed_apps ?access_token={access-token} &subscribed_fields={fields}
Marcador de valor | Descripción del valor |
---|---|
| Identificador de la página conectada a la cuenta del usuario de la app. |
| Token de acceso a la página del usuario de la app. |
| Un campo de la página (p. ej., |
Tu app no recibe notificaciones de los cambios que se realicen en un campo, a menos que configures las suscripciones a la página en el panel de apps y te suscribas a ese campo.
curl -i -X POST \
"https://graph.facebook.com/v21.0
/1755847768034402/subscribed_apps?subscribed_fields=feed&access_token=EAAFB..."
{ "success": true }
Si te suscribes al campo story_insights
, una vez que la historia caduca, enviamos a tu punto de conexión una notificación de webhook que contiene las métricas de la interacción de los usuarios con la historia.
[ { "entry": [ { "changes": [ { "field": "story_insights", "value": { "media_id": "18023345989012587", "exits": 1, "replies": 0, "reach": 17, "taps_forward": 12, "taps_back": 0, "impressions": 28 } } ], "id": "17841405309211844", // Instagram Business or Creator Account ID "time": 1547687043 } ], "object": "instagram" } ]
Si te suscribes al campo mentions
, enviamos a tu punto de conexión una notificación de webhook cuando un usuario de Instagram @menciona una cuenta comercial o de creador de Instagram en un comentario o texto.
Aquí puedes ver un ejemplo del contenido de una notificación de webhook generada en respuesta a un comentario enviado a una cuenta comercial de Instagram (17841405726653026
):
[ { "entry": [ { "changes": [ { "field": "mentions", "value": { "comment_id": "17894227972186120", "media_id": "17918195224117851" } } ], "id": "17841405726653026", "time": 1520622968 } ], "object": "instagram" } ]
A fin de obtener el contenido del comentario, usa la propiedad comment_id
para consultar el perímetro GET /{ig-user-id}/mentioned_comment
:
GET https://graph.facebook.com/17841405726653026 ?fields=mentioned_comment.comment_id(17894227972186120)
{ "mentioned_comment": { "timestamp": "2018-03-20T00:05:29+0000", "text": "@bluebottle challenge?", "id": "17894227972186120" }, "id": "17841405726653026" }
Cuando obtengas la respuesta, analiza la carga útil de la propiedad text
a fin de determinar si quieres responder el comentario. Para responderlo, usa los valores de la propiedad caption_id
y media_id
de la carga útil de la notificación de webhook con el objetivo de consultar el punto de conexión POST /{ig-user-id}/mentions
:
curl -i -X POST \ -d "comment_id=17894227972186120" \ -d "media_id=17918195224117851" \ -d "message=Challenge%20accepted!" \ -d "access_token={access-token}" \ "https://graph.facebook.com/17841405726653026/mentions"
{ "id": "17911496353086895" }
Si te suscribes al campo mentions
, enviamos a tu punto de conexión una notificación cuando un usuario @menciona una cuenta comercial o de creador de Instagram en un comentario o un texto de un objeto multimedia que no pertenece al creador o la empresa.
Aquí puedes ver un ejemplo de carga útil de una notificación de webhook generada en respuesta a una @mención en texto enviada a una cuenta comercial de Instagram (17841405726653026
):
[ { "entry": [ { "changes": [ { "field": "mentions", "value": { "media_id": "17918195224117851" } } ], "id": "17841405726653026", "time": 1520622968 } ], "object": "instagram" } ]
Para obtener el contenido del texto, usa la propiedad media_id
a fin de consultar el perímetro GET /{ig-user-id}/mentioned_media
:
GET https://graph.facebook.com/17841405726653026 ?fields=mentioned_media.media_id(17918195224117851){caption,media_type}
{ "mentioned_media": { "caption": "@bluebottle There can be only one!", "media_type": "IMAGE", "id": "17918195224117851" }, "id": "17841405726653026" }
Cuando obtengas la respuesta, analiza la carga útil de la propiedad caption
para determinar si quieres responder el comentario. Para responderlo, usa la propiedad media_id
del webhook para consultar el perímetro POST /{ig-user-id}/mentions
:
curl -i -X POST \ -d "media_id=17918195224117851" \ -d "message=MacLeod%20agrees!" \ -d "access_token={access-token}" \ "https://graph.facebook.com/17841405726653026/mentions"
{ "id": "17911496353086895" }