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