Le contenu qui suit provient de la documentation relative au produit Webhooks. Si vous ne connaissez pas Webhooks, veuillez consulter la documentation correspondante.

Configurer des webhooks pour Instagram

Grâce aux webhooks pour Instagram, vous recevez des notifications en temps réel quand quelqu’un commente les objets multimédias des utilisateur·ices de votre application ou les @mentionne, ou quand les stories de vos utilisateur·ices expirent.

Recevoir les notifications des webhooks en direct

Pour recevoir en direct les notifications des webhooks, les conditions suivantes doivent être remplies :

Si les autorisations de l’application n’ont pas un niveau d’accès Avancé, l’application ne reçoit aucune notification des webhooks.

  • L’utilisateur·ice de l’application doit avoir accordé les autorisations nécessaires à votre application (instagram_manage_insights pour les stories, instagram_manage_comments pour les commentaires et les @mentions).
  • Les abonnements de Page doivent être activés sur la Page connectée au compte de l’utilisateur·ice de l’application.
  • L’entreprise connectée à la Page de l’utilisateur·ice de l’application doit avoir été vérifiée.
  • Le propriétaire du contenu multimédia dans lequel le commentaire ou la @mention apparaît ne doit pas avoir défini son compte comme privé.

Limites

  • Les notifications des webhooks concernant les commentaires des albums ne mentionnent pas l’ID des albums. Pour obtenir cet ID, vous devez exécuter une requête sur l’ID des commentaires dans le webhook et demander son champ media.
  • Les applications ne reçoivent aucune notification des webhooks si le média dans lequel apparaît le commentaire ou la @mention a été créé par un compte privé.
  • Lorsque les statistiques des stories affichent un total inférieur à 5, la valeur renvoyée est -1.
  • Les applications reçoivent les notifications des webhooks pour l’ajout de commentaires uniquement pendant la diffusion en direct de l’objet Contenu multimédia Instagram.
  • Les reels ne sont pas pris en charge.
  • Votre application doit avoir passé le Contrôle app avec succès (accès avancé) pour recevoir des notifications de webhooks pour les champs de Webhooks comments et live_comments.
  • Si le contenu multimédia est utilisé pour des publicités dynamiques, l'ID publicité ne sera pas renvoyé.

Étape 1 : Créer un point de terminaison

Créez un point de terminaison qui accepte et traite les webhooks. Pendant la configuration, sélectionnez l’objet API Graph pour Instagram, cliquez sur Configurer, et abonnez-vous à un ou plusieurs champs Instagram.

Champs Instagram

ChampDescriptionAutorisations requises

comments

Commente un objet Contenu multimédia Instagram appartenant à un utilisateur ou une utilisatrice Instagram de votre application.

Les valeurs ad_id, ad_title et original_media_id seront renvoyées dans l’objet de contenu multimédia lorsqu’une personne commente une publication Instagram boostée ou une publication de publicités Instagram.

live_comments

Commente un objet Contenu multimédia Instagram en direct appartenant à un utilisateur ou une utilisatrice Instagram de votre application.

mentions

@mentionne dans un commentaire un utilisateur ou une utilisatrice Instagram de votre application.

story_insights

Indicateurs décrivant les interactions sur une story. Envoyés 1 heure après l’expiration de la story.

Étape 2 : Activer les abonnements de Page

Votre application doit activer les abonnements de Page sur la Page connectée au compte de l’utilisateur·ice de l’application. Pour ce faire, l’application doit envoyer une requête POST à l’arête relative aux applications abonnées à la Page et activer un abonnement à l’un des champs de Page.

Conditions requises pour les points de terminaison

Syntaxe de la requête

POST /{page-id}/subscribed_apps
  ?access_token={access-token}
  &subscribed_fields={fields}

Paramètres de la requête

Espace réservé Description de la valeur

{page_id}

ID de la Page connectée au compte de l’utilisateur·ice de l’application.

{access_token}

Token d’accès de Page de l’utilisateur·ice de l’application.

{fields}

Champ de Page (exemple : feed).

Votre application ne reçoit de notifications pour les changements apportés à un champ que si vous configurez les abonnements de Page dans l’Espace app et vous abonnez à ce champ.

Exemple de requête

curl -i -X POST \
  "https://graph.facebook.com/v21.0/1755847768034402/subscribed_apps?subscribed_fields=feed&access_token=EAAFB..."
Exemple de réponse
{
  "success": true
}

Usages courants

Obtenir les statistiques des stories

Si vous vous abonnez au champ story_insights, vous recevez une notification du webhook sur votre point de terminaison contenant les indicateurs d’interaction utilisateur·ice sur une story après l’expiration de la story.

Exemple de charge utile des statistiques des stories

[
  {
    "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"
  }
]

Répondre aux @mentions dans les commentaires

Si vous vous abonnez au champ mentions, vous recevez une notification du webhook sur votre point de terminaison à chaque fois qu’un utilisateur ou une utilisatrice d’Instagram @mentionne un compte Instagram professionnel ou Creator dans un commentaire ou une légende.

Voici un exemple de charge utile d’une notification de commentaire du webhook envoyée pour un compte business Instagram (17841405726653026) :

Exemple de charge utile d’une @mention en commentaire

[
  {
    "entry": [
      {
        "changes": [
          {
            "field": "mentions",
            "value": {
              "comment_id": "17894227972186120",
              "media_id": "17918195224117851"
            }
          }
        ],
        "id": "17841405726653026",
        "time": 1520622968
      }
    ],
    "object": "instagram"
  }
]

Obtenir le contenu du commentaire

Pour obtenir le contenu du commentaire, utilisez la propriété comment_id pour exécuter une requête sur l’arête GET /{ig-user-id}/mentioned_comment :

Exemple de requête

GET https://graph.facebook.com/17841405726653026 ?fields=mentioned_comment.comment_id(17894227972186120) 

Exemple de réponse

{
  "mentioned_comment": {
    "timestamp": "2018-03-20T00:05:29+0000",
    "text": "@bluebottle challenge?",
    "id": "17894227972186120"
  },
  "id": "17841405726653026"
}

Analyser la charge utile et répondre

Quand vous obtenez la réponse, repérez la propriété text dans la charge utile pour déterminer si vous voulez répondre au commentaire. Pour répondre, utilisez les valeurs de propriété caption_id et media_id de la charge utile de la notification du webhook pour exécuter une requête sur le point de terminaison POST /{ig-user-id}/mentions :

Exemple de requête

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"

Exemple de réponse

{
  "id": "17911496353086895"
}

Répondre aux @mentions dans les légendes

Si vous vous abonnez au champ mentions, vous recevez une notification du webhook sur votre point de terminaison à chaque fois qu’un utilisateur ou une utilisatrice @mentionne un compte Instagram professionnel ou Creator dans un commentaire ou une légende d’un contenu multimédia qui n’appartient pas audit compte.

Voici un exemple de notification de @mention d’un webhook dans une légende envoyée pour un compte business Instagram (17841405726653026) :

Exemple de notification de @mention d’un webhook dans une légende

[
  {
    "entry": [
      {
        "changes": [
          {
            "field": "mentions",
            "value": {
              "media_id": "17918195224117851"
            }
          }
        ],
        "id": "17841405726653026",
        "time": 1520622968
      }
    ],
    "object": "instagram"
  }
]

Obtenir le contenu de la légende

Pour obtenir le contenu de la légende, utilisez la propriété media_id pour exécuter une requête sur l’arête GET /{ig-user-id}/mentioned_media :

Exemple de requête

GET https://graph.facebook.com/17841405726653026 ?fields=mentioned_media.media_id(17918195224117851){caption,media_type} 

Exemple de réponse

{
  "mentioned_media": {
    "caption": "@bluebottle There can be only one!",
    "media_type": "IMAGE",
    "id": "17918195224117851"
  },
  "id": "17841405726653026"
}

Analyser la charge utile et répondre

Quand vous obtenez la réponse, analysez la propriété caption dans la charge utile pour déterminer si vous voulez répondre au commentaire. Pour répondre, utilisez la propriété media_id de la charge utile de la notification du webhook pour envoyer une requête à l’arête POST /{ig-user-id}/mentions :

Exemple de requête

curl -i -X POST \
  -d "media_id=17918195224117851" \
  -d "message=MacLeod%20agrees!" \
  -d "access_token={access-token}" \
  "https://graph.facebook.com/17841405726653026/mentions"

Exemple de réponse

{
  "id": "17911496353086895"
}