WhatsApp Ricezione Messaggi e Notifiche di Stato

Si iscriva ai Webhooks per ricevere notifiche sui messaggi che la Sua attività riceve e sugli aggiornamenti dei profili dei clienti.

 

Ogni volta che si verifica un evento trigger, la piattaforma WhatsApp Business rileva l'evento e invia una notifica a un URL Webhook precedentemente specificato. È possibile ricevere due tipi di notifiche:

 

 

 

 

Messaggi ricevuti

Ogni volta che viene ricevuto un nuovo messaggio, viene chiamato l'evento OnMessageReceived, tramite il quale è possibile accedere al contenuto del messaggio e contrassegnarlo come letto.

 

Di seguito è riportato un esempio in cui, quando viene ricevuto un nuovo messaggio di testo, viene rimandato all'utente che lo ha inviato.

 


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;

 

 

Messaggi inviati

La piattaforma WhatsApp Business invia notifiche per informare dello stato dei messaggi scambiati tra Lei e gli utenti. Quando un messaggio viene inviato con successo, riceve una notifica quando il messaggio viene inviato, consegnato e letto. L'ordine di queste notifiche nell'applicazione potrebbe non riflettere l'effettiva tempistica dello stato del messaggio. Visualizzare il timestamp per determinare la tempistica, se necessario.

 

 

Ogni volta che viene ricevuto un nuovo stato, viene chiamato l'evento OnMessageSent .

 


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;