Componente WhatsApp Client: sgcSocial | eSeGeCe

WhatsApp Client

TsgcWhatsApp_Client se comunica con la WhatsApp Business Cloud API, la Graph API de Meta para WhatsApp. Envía texto, contenido multimedia, ubicaciones, contactos, reacciones, listas y botones interactivos, y plantillas aprobadas, y después recibe las respuestas y el estado de entrega a través del servidor de webhook integrado. El mismo componente y la misma API en Delphi y en C++ Builder.

TsgcWhatsApp_Client

Copia el Phone Number ID y el token de acceso de tu aplicación de Meta en WhatsAppOptions, llama a los métodos SendMessage... y después ejecuta StartServer para alojar el webhook que recibe las respuestas.

Clase del componente

TsgcWhatsApp_Client

API

WhatsApp Business Cloud API (Meta Graph API)

Transporte

HTTPS puro, todas las plataformas de Delphi

Lenguajes

Delphi, C++ Builder

También incluido en sgcWebSockets. El cliente de WhatsApp también se incluye en sgcWebSockets a partir de la edición Professional. sgcSocial es el paquete independiente, con el runtime Core de sgcWebSockets incluido.

Envía un texto, recibe la respuesta

Configura WhatsAppOptions.PhoneNumberId y Token, envía un texto y después arranca el servidor de webhook para que Meta pueda entregar los mensajes entrantes. TsgcWhatsApp_Client se declara en la unidad sgcLibs.

uses
  sgcLibs;

var
  WhatsApp: TsgcWhatsApp_Client;
begin
  WhatsApp := TsgcWhatsApp_Client.Create(nil);
  WhatsApp.WhatsAppOptions.PhoneNumberId := '123456789012345';
  WhatsApp.WhatsAppOptions.Token := 'EAAG...';

  WhatsApp.SendMessageText('+34666555444', 'hello from Delphi');

  // webhook server: receive messages and status updates
  WhatsApp.ServerOptions.Port := 443;
  WhatsApp.ServerOptions.SSL := True;
  WhatsApp.ServerOptions.SSLOptions.CertFile := 'cert.pem';
  WhatsApp.ServerOptions.SSLOptions.KeyFile  := 'key.pem';
  WhatsApp.ServerOptions.SSLOptions.Port := 443;
  WhatsApp.OnMessageReceived := WhatsAppMessageReceived;
  WhatsApp.StartServer;
end;

procedure TForm1.WhatsAppMessageReceived(Sender: TObject;
  const aMessage: TsgcWhatsApp_Receive_Message;
  var aMarkAsRead: Boolean);
begin
  Memo1.Lines.Add(aMessage.RawMessage);
  aMarkAsRead := True;
end;
// include: sgcLibs.hpp

TsgcWhatsApp_Client *WhatsApp = new TsgcWhatsApp_Client(this);
WhatsApp->WhatsAppOptions->PhoneNumberId = "123456789012345";
WhatsApp->WhatsAppOptions->Token = "EAAG...";

WhatsApp->SendMessageText("+34666555444", "hello from Delphi");

// webhook server: receive messages and status updates
WhatsApp->ServerOptions->Port = 443;
WhatsApp->ServerOptions->SSL = true;
WhatsApp->ServerOptions->SSLOptions->CertFile = "cert.pem";
WhatsApp->ServerOptions->SSLOptions->KeyFile  = "key.pem";
WhatsApp->ServerOptions->SSLOptions->Port = 443;
WhatsApp->OnMessageReceived = WhatsAppMessageReceived;
WhatsApp->StartServer();

void __fastcall TForm1::WhatsAppMessageReceived(TObject *Sender,
    TsgcWhatsApp_Receive_Message * const aMessage, bool &aMarkAsRead)
{
  Memo1->Lines->Add(aMessage->RawMessage);
  aMarkAsRead = true;
}

Propiedades y métodos principales

Los miembros que vas a usar con más frecuencia.

Credenciales de la Cloud API

WhatsAppOptions.PhoneNumberId y WhatsAppOptions.Token, ambos procedentes de tu aplicación de Meta. Cada llamada es una simple solicitud HTTPS a la Graph API.

Texto, reacciones, acuses de recibo

SendMessageText envía texto, SendMessageReaction reacciona a un id de mensaje, y MarkMessageRead envía el acuse de lectura.

Multimedia mediante enlace público

SendMessageImage, SendMessageDocument, SendMessageAudio, SendMessageVideo y SendMessageSticker hacen referencia a contenido multimedia alojado en una URL pública.

Multimedia desde un archivo local

SendFileImage, SendFileDocument, SendFileAudio, SendFileVideo y SendFileSticker suben primero el archivo local y después lo envían.

Ubicación y contactos

SendMessageLocation envía coordenadas con un nombre y una dirección. SendMessageContact envía tarjetas de contacto.

Mensajes interactivos

SendMessageInteractiveList para listas de selección, SendMessageInteractiveButtons para botones de respuesta.

Plantillas

SendMessageTemplate recibe el nombre de la plantilla, el código de idioma y los parámetros.

Almacén multimedia

UploadMedia, DownloadMedia y DeleteMedia trabajan directamente con el almacén multimedia de la Cloud API.

Servidor de webhook

StartServer y StopServer alojan el webhook de Meta, configurado a través de ServerOptions. OnBeforeSubscribe responde a la solicitud de verificación, OnMessageReceived entrega los mensajes entrantes con un argumento var aMarkAsRead, OnMessageSent informa del estado de entrega y OnRawMessage expone el JSON en bruto.

TLS y registro

TLSOptions configura el cliente HTTPS, OnBeforeSendMessage inspecciona los mensajes salientes, y el registro en archivo guarda el tráfico para la resolución de problemas.

Sigue explorando

Resumen de sgcSocialAmbos componentes, ediciones y licencias de un vistazo.
Matriz de funciones: WhatsAppTodas las funciones de este componente en forma de tabla.
WhatsApp API en profundidadLa página de referencia de la API, con enlaces a la ayuda en línea y al PDF.
Blog: componente de WhatsApp para DelphiUn recorrido por el cliente de la Cloud API.
Blog: enviar archivos locales con la WhatsApp APISubir contenido multimedia local con los métodos SendFile.
La mejor opción: All-AccessTodos los productos de eSeGeCe, con Premium Support incluido, desde €1,059 al año.
Ver precios de All-Access

¿Listo para enviar mensajes de WhatsApp?

Descarga la prueba gratuita y conecta tu aplicación Delphi a la WhatsApp Business Cloud API.