Webhooks pour la messagerie Instagram

Les Webhooks vous permettent de recevoir des notifications HTTP en temps réel relatives aux modifications apportées à des objets spécifiques du graphe social Meta. Par exemple, nous pouvons vous envoyer une notification lorsqu’un·e client·e envoie un message à votre compte professionnel Instagram. Les notifications Webhooks vous permettent de suivre les modifications relatives aux messages sans dépasser les plafonds que vous pourriez atteindre si vous interrogiez les points de terminaison de la plateforme Messenger pour suivre ces modifications.

Conditions requises

Vous devez remplir les exigences suivantes pour recevoir les notifications des webhooks pour la messagerie Instagram :

  • Les autorisations instagram_basic, instagram_manage_messages et pages_manage_metadata
  • Pour recevoir les notifications de webhooks qui contiennent des données détenues ou gérées par des utilisateur·ices qui n’ont aucun rôle sur votre application, cette dernière doit bénéficier d’un accès avancé

Remarque : vous devrez abonner toutes les applications de messagerie de votre entreprise aux webhooks de messages.

Modes d’application

  • Mode Développement : les webhooks ne sont envoyés que si la personne qui utilise votre application possède un rôle sur l’application et ce, même si votre application bénéficie de l’accès avancé. Vous ne pouvez accéder qu’aux données que vous détenez et que vous administrez.
  • Mode Live : les webhooks sont envoyés en fonction du niveau d’accès.
    • Accès standard : les webhooks ne sont envoyés que si la personne qui utilise votre application possède un rôle sur l’application. Vous ne pouvez accéder qu’aux données que vous détenez et que vous administrez.
    • Accès Avancé : les webhooks sont envoyés chaque fois qu’une personne utilise votre application, à condition qu’elle dispose des autorisations préalables.

En savoir plus sur les niveaux d’accès , modes d’application et rôles d’application.

Restrictions

  • Lorsqu’un·e client·e transfère une image issue d’un carrousel dans une publication Instagram ou y réagit, la notification inclut la première image du carrousel, qui n’est pas forcément l’image transférée ou ayant fait l’objet de la réaction.
  • Seule l’URL de la publication ou du contenu multimédia partagé est incluse dans la notification lorsqu’un client ou une cliente envoie un message avec un partage.
  • Les messages comportant des GIF et des stickers ne sont pas pris en charge. Si un·e client·e envoie un message avec un GIF ou un sticker, aucun webhook n’est déclenché et aucune notification de webhook n’est envoyée.

Événements Webhook

Champ WebhookDescription

message_reactions

Une notification est envoyée lorsqu’un·e client·e réagit à un message ou annule une réaction.

L’API Graph version 12.0 et ultérieure accepte les réactions angry, sad, wow, love, like, laugh et other.

messages

Une notification est envoyée chaque fois qu’un·e client·e de votre entreprise effectue l’une des actions suivantes :

  • envoi d’un message avec du texte ou un contenu multimédia (image/vidéo/fichier/audio)
  • partage (d’un contenu multimédia/d’une publication)
  • réponse à une story ou une mention dans une story. Seules les mentions dans les stories déclenchent un webhook. Les tags qui apparaissent sur les publications normales ne déclenchent pas de webhook. Pour l’instant, le webhook Réponses à une story ne prend pas en charge les GIF ni les stickers.
  • envoi d’une réponse intégrée à un message ou un sticker
  • envoi d’une réponse rapide ou sélection de l’option Prise de contact ou du bouton Modèle générique
  • suppression d’un message
  • envoi d’un message non pris en charge
  • envoi d’un message depuis la page des détails d’un produit dans une boutique Instagram
  • un·e client·e clique sur une annonce qui dirige vers une conversation par messages Instagram (Clic vers Direct, CTD)

Une notification est également envoyée chaque fois que votre entreprise envoie un message à un·e client·e. En revanche, lorsque votre entreprise réagit au message d’un·e client·e ou annule une réaction, aucune notification n’est envoyée.

Ce rappel se produit quand un message a été envoyé par votre compte Instagram. L’indicateur is_echo est inclus pour vous informer que le message est envoyé par le compte Instagram. L’évènement message_reactions n’entraînera pas l’envoi d’un webhook d’écho.

messaging_postbacks

Une notification est envoyée lorsqu’un·e client·e clique sur l’option Prise de contact ou le bouton Modèle générique.

La version 8.0 ou ultérieure est requise. La version 11.0 ou ultérieure est requise pour que le champ mid soit inclus.

messaging_seen

Une notification est envoyée lorsqu’un message a été lu par le ou la destinataire.

messaging_referral

Une notification est envoyée lorsqu’un·e client·e clique sur le lien ig.me comportant un paramètre de référencement dans une conversation.

standby

Si le flux des messages est alimenté par plusieurs applications, une notification est envoyée lorsqu’un·e client·e envoie un message à votre entreprise, mais que l’application ne contrôle pas la conversation au moment de son envoi.

Exemples de notifications

Voici quelques exemples des types de notifications de webhook que vous pouvez recevoir.

Messages

{
  "object": "instagram",
  "entry": [
    {
      "id": "IGID",  // ID of your Instagram Professional account
      "time": 1569262486134,
      "messaging": [
        {
          "sender": { "id": "IGSID" },    // Instagram-scoped ID for the customer who sent the message
          "recipient": { "id": "IGID" },  // ID of your Instagram Professional account
          "timestamp": 1569262485349,
          "message": {
            "mid": "MESSAGE-ID",   // ID of the message sent to your business
      
            "text": "MESSAGE-TEXT"     // Included when a customer sends a message containing text
      
            "attachments": [           // Included when a customer sends multiple media attachments or a URL for a story mention or share
              {
                "type":"image",             // Can be audio, file, image (image or sticker), share, story_mention, or video
                "payload":{ "url":"LINK" }  
              },
              {
                "type":"video",
                "payload":{ "url":"LINK" }
              }
            ]
      
            "is_deleted": true         // Included when a customer deletes a message
      
            "is_echo": true            // Included when your business sends a message to the customer

            "is_unsupported": true,    // Included when a customer sends a message with unsupported media
      
            "quick_reply": {           // Included when a customer clicks a quick reply
              "payload": "CUSTOMER-RESPONSE-PAYLOAD"   // The payload with the option selected by the customer
            },      
      
            "referral": {              // Included when a customer clicks an Instagram Shop product
              "product": {
                "id": "PRODUCT-ID"
            }      
      
            "referral": {                   // Included when a customer clicks an CTD ad
              "ref": "REF-DATA-IN-AD-IF-SPECIFIED"
              "ad_id": AD-ID,
              "source": "ADS",
              "type": "OPEN_THREAD",
              "ads_context_data": {
                "ad_title": TITLE-FOR-THE-AD,
                "photo_url": IMAGE-URL-THAT-WAS-CLICKED,
                "video_url": THUMBNAIL-URL-FOR-THE-AD-VIDEO,
              }
            }

            "reply_to":{               // Included when a customer sends an inline reply
              "mid":"MESSAGE-ID"
            } 
      
            "reply_to": {               // Included when a customer replies to a story
              "story": {
                "url":"CDN-URL",
                "id":"STORY-ID"       
              }
            }
          }
        }
      ]
    }
  ]
}

Réactions aux messages

{
  "object": "instagram",
  "entry": [
    {
      "id": "IGID",  // ID for your Instagram Professional account
      "time": 1569262486134,
      "messaging": [
        {
          "sender": {
            "id": "IGSID"  // Instagram-scoped ID for the customer who sent the message
          },
          "recipient": {
            "id": "IGID"  // ID for your Instagram Professional account
          },
          "timestamp": 1569262485349,
          "reaction" :{
            "mid" : "MESSAGE-ID",
            "action": "react",    // or unreact
            "reaction": "love", // optional, to unreact if there is no reaction field
            "emoji": "\u{2764}\u{FE0F}" // optional, to unreact if there is no emoji field
          } 
        }
      ]
    }
  ]
}  

Renvois de messages

{
  "object": "instagram",
  "entry": [
    {
      "id": "IGSID",  // ID of your Instagram Professional account
      "time": 1502905976963,
      "messaging": [
        {
          "sender": { "id": "IGSID" },    // Instagram-scoped ID for the customer who sent the message
          "recipient": { "id": "IGID" },  // ID of your Instagram Professional account
          "timestamp": 1502905976377,
          "postback": {
            "mid":"MESSAGE-ID",           // ID for the message sent to your business
            "title": "SELECTED-ICEBREAKER-REPLY-OR-CTA-BUTTON",
            "payload": "CUSTOMER-RESPONSE-PAYLOAD",  // The payload with the option selected by the customer
          }
        }
      ]
    }
  ]
}

Référencement de messages

{
  "object": "instagram",
  "entry": [
    {
      "id": "IGSID",  // ID of your Instagram Professional account  
      "time": 1502905976963,
      "messaging": [
        {
          "sender": {
            "id": "IGSID"  // Instagram-scoped ID for the customer who sent the message
          },
          "recipient": {
            "id": "IGID"  // ID of your Instagram Professional account
          },
          "timestamp": 1502905976377,
          "referral": {
                 "ref": "INFORMATION-INCLUDED-IN-REF-PARAMETER-OF-IGME-LINK"
                 "source": "IGME-SOURCE-LINK"  
                 "type":  "OPEN_THREAD"  // Only supported for existing conversations 
          }
        }
      ]
    }
  ]
}
  

Messages vus

{
   "object":"instagram",
   "entry":[
      {
         "id":"IGID",  // ID for your Instagram Professional account
         "time":1569262486134,
         "messaging":[
            {
               "sender":{
                  "id":"IGSID"  // Instagram-scoped ID for the customer who sent the message
               },
               "recipient":{
                  "id":"IGID"  // ID for your Instagram Professional account
               },
               "timestamp":1569262485349,
               "read":{
                  "mid":"MESSAGE-ID"
               }
            }
         ]
      }
   ]
}

Voir aussi

  • Protocole de transfert Messenger  : si plusieurs applications traitent les messages, par exemple, si une application traite les réponses automatiques et qu’une autre gère les remontées vers un agent humain, vous devrez implémenter le protocole de transfert pour transmettre la conversation d’une application à une autre.
  • Clic vers Direct, CTD  : accédez aux pages d’aide pour les entreprises pour en savoir plus sur la création d’annonces qui renvoient vers Instagram Direct.

Assistance pour les équipes chargées du développement