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