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 :
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;
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;