WhatsApp Receive Messages and Status Notifications

Inscreva-se em Webhooks para receber notificações sobre as mensagens que seu negócio recebe e sobre atualizações de perfil de clientes.

 

Sempre que ocorre um evento de gatilho, a WhatsApp Business Platform percebe o evento e envia uma notificação para uma URL de Webhook que você especificou anteriormente. Você pode obter dois tipos de notificações:

 

 

 

 

Received Messages

Toda vez que uma nova mensagem é recebida, o evento OnMessageReceived é chamado, onde você pode acessar o conteúdo da Message e marcá-la como lida.

 

Encontre abaixo um exemplo em que, quando uma nova mensagem de texto é recebida, ela é ecoada para o usuário que a enviou.

 


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;

 

 

Mensagens Enviadas

A WhatsApp Business Platform envia notificações para informá-lo sobre o status das mensagens entre você e os usuários. Quando uma mensagem é enviada com sucesso, você recebe uma notificação quando a mensagem é enviada, entregue e lida. A ordem dessas notificações no seu app pode não refletir o tempo real do status da mensagem. Veja o timestamp para determinar o tempo, se necessário.

 

 

Cada vez que um novo status é recebido, o evento OnMessageSent é chamado.

 


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;