WhatsApp Recepción de Mensajes y Notificaciones de Estado

Suscríbase a Webhooks para recibir notificaciones sobre los mensajes que recibe su empresa y las actualizaciones del perfil del cliente.

 

Cuando se produce un evento de activación, la plataforma WhatsApp Business detecta el evento y envía una notificación a una URL de Webhook que usted ha especificado previamente. Puede recibir dos tipos de notificaciones:

 

 

 

 

Mensajes Recibidos

Cada vez que se recibe un nuevo mensaje, se llama al evento OnMessageReceived, donde puede acceder al contenido del mensaje y marcarlo como leído.

 

A continuación encontrará un ejemplo en el que, al recibir un nuevo mensaje de texto, este se reenvía al usuario que lo envió.

 


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;

 

 

Mensajes enviados

La plataforma WhatsApp Business envía notificaciones para informarle del estado de los mensajes entre usted y los usuarios. Cuando un mensaje se envía correctamente, recibirá una notificación cuando el mensaje sea enviado, entregado y leído. El orden de estas notificaciones en su aplicación puede no reflejar el momento real del estado del mensaje. Si es necesario, consulte la marca de tiempo para determinar el momento exacto.

 

 

Cada vez que se recibe un nuevo estado, se llama al 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;