WhatsApp — Réception de messages et notifications de statut

Abonnez-vous aux Webhooks pour recevoir des notifications sur les messages que votre entreprise reçoit et les mises à jour du profil client.

 

Chaque fois qu'un événement déclencheur se produit, la plateforme WhatsApp Business détecte l'événement et envoie une notification à une URL Webhook que vous avez préalablement spécifiée. Vous pouvez recevoir deux types de notifications :

 

 

 

 

Messages reçus

Chaque fois qu'un nouveau message est reçu, l'événement OnMessageReceived est appelé, où vous pouvez accéder au contenu du message et marquer le message comme lu.

 

Vous trouverez ci-dessous un exemple où, lorsqu'un nouveau message texte est reçu, il est renvoyé à l'utilisateur qui l'a envoyé.

 


procedure OnWhatsAppMessageReceived(Sender: TObject; const aMessage: TsgcWhatsApp_Receive_Message; var aMarkAsRead: Boolean);
var
  vText: string;
  vTo: string;
begin
  if aMessage.Contacts.Count > 0 then
  begin
    vTo := aMessage.Contacts.Contact[0].WaID;
    if aMessage.Messages.Count > 0 then
    begin
      if aMessage.Messages._Message[0]._Type = wapmrtText then
      begin
        vText := 'ECHO ==> ' + aMessage.Messages._Message[0].Text.Body;
        WhatsApp.SendMessageText(vTo, vText);
        aMarkAsRead := True;
      end;
    end;
  end;
end;

 

 

Messages envoyés

La plateforme WhatsApp Business envoie des notifications pour vous informer du statut des messages entre vous et les utilisateurs. Lorsqu'un message est envoyé avec succès, vous recevez une notification lors de l'envoi, de la livraison et de la lecture du message. L'ordre de ces notifications dans votre application peut ne pas refléter le timing réel du statut du message. Consultez l'horodatage pour déterminer le timing, si nécessaire.

 

 

Chaque fois qu'un nouveau statut est reçu, l'événement OnMessageSent est appelé.

 


procedure OnWhatsAppMessageSent(Sender: TObject; const aMessage: TsgcWhatsApp_Receive_Message; aStatus: TsgcWhatsAppSendMessageStatusType);
begin
  vPhone := aMessage.MetaData.DisplayPhoneNumber;
  case aStatus of
    wapsmstSent: DoLog('Message to ' + vPhone + ' sent.');
    wapsmstDelivered: DoLog('Message to ' + vPhone + ' delivered.');
    wapsmstRead: DoLog('Message to ' + vPhone + ' read.');
    else
      DoLog('Message to ' + vPhone + ' unknown status.')
  end;
end;