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 webhook 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/v19.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" }