WhatsApp Cloud API

Whatsapp

 

Invii e riceva messaggi utilizzando una versione cloud-hosted della WhatsApp Business Platform. La Cloud API consente di implementare le WhatsApp Business API senza il costo dell'hosting di server propri e consente inoltre di scalare più facilmente la messaggistica aziendale. La Cloud API supporta fino a 80 messaggi al secondo di invio e ricezione combinati (inclusi i messaggi di testo e multimediali).

 

L'API WhatsApp Business consente alle medie e grandi imprese di comunicare con i propri clienti su larga scala. Tramite l'API, le aziende possono costruire sistemi che collegano migliaia di clienti ad agenti o bot, abilitando sia la comunicazione programmatica sia quella manuale. Inoltre, è possibile integrare l'API con numerosi sistemi backend, come CRM e piattaforme di marketing.

 

Funzionalità

Le aziende otterranno tutte le nuove funzionalità più rapidamente tramite Cloud API. Attualmente, WhatsApp Business Cloud API include tutte le funzionalità disponibili con WhatsApp Business API.

 

Funzionalità utili di WhatsApp Cloud API:

 

 

Usi più comuni

 

 

 

Introduzione

Per inviare e ricevere un primo messaggio utilizzando un numero di test, completare i seguenti passaggi:

 

1. Configurare gli asset per sviluppatori e l'accesso alla piattaforma

 

 

Dalla App Dashboard, faccia clic sull'app che desidera connettere a WhatsApp. Scorra verso il basso per trovare il prodotto "WhatsApp" e faccia clic su Set up.

 

Successivamente, verrà visualizzata l'opzione per selezionare un Business Manager esistente (se disponibile) o, se lo si desidera, il processo di onboarding può crearne uno automaticamente (il profilo aziendale potrà essere personalizzato in seguito, se necessario). Effettuare una selezione e fare clic su Continua.

 

Quando si fa clic su Continua, il processo di configurazione iniziale esegue le seguenti azioni:

 

 

2. Inviare un messaggio di test

 

 

Ora è possibile aprire l'IDE e creare un nuovo progetto. Inserire un componente TsgcWhatsapp_Client e compilare le seguenti proprietà:

 

 

Una volta configurate correttamente queste 2 proprietà, chiamare il metodo SendTest per inviare il Primo messaggio a un numero di telefono tramite la Whatsapp Business Platform.

 


oClient := TsgcWhatsapp_Client.Create(nil);
oClient.WhatsappOptions.PhoneNumberId := '107809351952205';
oClient.WhatsappOptions.Token := 'EAAO4OpgZAs98BAGj3nCFGr...ZB2t8mmLB2LRXJkte2Y5PMNh2';
oClient.SendTest('34605889421');

 

3. Configurare un Webhook

 

Per ricevere notifiche quando si riceve un messaggio o quando lo stato di un messaggio è cambiato, è necessario configurare un endpoint Webhooks per la propria applicazione. La configurazione dei Webhooks non influisce sullo stato del numero di telefono e non interferisce con l'invio o la ricezione di messaggi.

 

Per iniziare, deve innanzitutto creare l'endpoint, quindi per prima cosa configuri la proprietà ServerOptions del componente WhatsApp Client e configuri le seguenti proprietà:

 

 

Dopo aver configurato il server, è possibile utilizzare il metodo StartServer per avviare il server e accettare le richieste in arrivo.

 


oClient := TsgcWhatsapp_Client.Create(nil);
oClient.ServerOptions.WebhookOptions.Endpoint := '/webhook';
oClient.ServerOptions.WebhookOptions.Token := 'MySecretToken';
oClient.StartServer();

Una volta che il proprio endpoint è pronto, accedere alla Dashboard dell'App.

 

Nel pannello di controllo dell'app, trovi il prodotto WhatsApp e clicca su Configurazione. Quindi, trova la sezione webhook e clicca su Configura un webhook. Dopo il clic, sullo schermo appare una finestra di dialogo che richiede due informazioni:

 

 

Dopo aver aggiunto le informazioni, fare clic su Verifica e salva.

 

Tornando alla App Dashboard, fare clic su WhatsApp > Configuration nel pannello laterale sinistro. In Webhooks, fare clic su Manage. Si aprirà una finestra di dialogo con tutti gli oggetti di cui si possono ricevere notifiche. Per ricevere messaggi dagli utenti, fare clic su Subscribe per messages.

 

4. Ricevere un messaggio di prova

 

Ogni volta che viene ricevuto un nuovo messaggio, verrà chiamato l'evento client OnMessageReceived.

 


procedure OnMessageReceived(Sender: TObject; const aMessage: TsgcWhatsapp_Receive_Message; var aMarkAsRead: Boolean);
begin
  DoLog('Received: ' + aMessage.Messages._Message[0].Id);
end;

 

Ora che il Webhook è configurato, inviare un messaggio al numero di test utilizzato. Si dovrebbe ricevere immediatamente una notifica Webhook con il contenuto del messaggio!

 

 

Le API WhatsApp non consentono l'invio di messaggi di testo libero a telefoni che non hanno contattato l'utente in precedenza (nelle ultime 24 ore). L'unico modo per inviare un messaggio di testo a un telefono che non ha mai contattato il numero dell'account sviluppatore è inviare un Template (precedentemente approvato da Meta). Per superare questa limitazione durante il test dei messaggi di testo libero, inviare prima un messaggio WhatsApp dal numero di destinazione al numero dell'account sviluppatore; successivamente sarà possibile inviare messaggi di testo libero per 24 ore.

 

Eventi

OnBeforeSendMessage

 

Questo evento viene chiamato prima che il messaggio venga inviato ai server WhatsApp. È possibile accedere al messaggio interno tramite il parametro RawMessage.

 

OnBeforeSubscribe

 

Questo evento viene chiamato prima che il server si iscriva a un topic. Utilizzi il parametro Accept per consentire o negare l'iscrizione. Per impostazione predefinita, il server si iscriverà a tutti gli eventi richiesti.

 

OnRawMessage

 

Questo evento viene chiamato quando il server riceve un nuovo messaggio che non è ancora stato analizzato, consentendo l'accesso al messaggio grezzo.

 

OnMessageReceived

 

Questo evento viene chiamato dopo che il server riceve e analizza un nuovo messaggio. Se si imposta il parametro MarkAsRead su True, il mittente riceverà una doppia spunta.

 

OnMessageSent

 

Questo evento viene richiamato ogni volta che il server riceve un nuovo messaggio di stato relativo al messaggio precedentemente inviato. Leggere la proprietà Status per sapere se il messaggio è stato inviato, consegnato o letto.