Componente cliente WhatsApp: sgcSocial | eSeGeCe

Cliente WhatsApp

O TsgcWhatsApp_Client fala com a API do WhatsApp Business Cloud, a Graph API da Meta para o WhatsApp. Envie texto, mídia, localizações, contatos, reações, listas e botões interativos, e templates aprovados, depois receba respostas e status de entrega pelo servidor de webhook embutido. O mesmo componente e a mesma API em Delphi e C++ Builder.

TsgcWhatsApp_Client

Copie o Phone Number ID e o token de acesso da sua aplicação Meta para WhatsAppOptions, chame os métodos SendMessage..., depois use StartServer para hospedar o webhook que recebe as respostas.

Classe do componente

TsgcWhatsApp_Client

API

API do WhatsApp Business Cloud (Graph API da Meta)

Transporte

HTTPS puro, todas as plataformas Delphi

Linguagens

Delphi, C++ Builder

Também dentro do sgcWebSockets. O cliente WhatsApp também vem dentro das edições do sgcWebSockets a partir da Professional. O sgcSocial é o pacote autônomo, o runtime sgcWebSockets Core vem embutido.

Envie um texto, receba a resposta

Defina WhatsAppOptions.PhoneNumberId e Token, envie um texto, depois inicie o servidor de webhook para que a Meta possa entregar mensagens de entrada. TsgcWhatsApp_Client é declarado na unit 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;
}

Principais propriedades e métodos

Os membros que você usa com mais frequência.

Credenciais da Cloud API

WhatsAppOptions.PhoneNumberId e WhatsAppOptions.Token, os dois da sua aplicação Meta. Toda chamada é uma requisição HTTPS simples para a Graph API.

Texto, reações, confirmações

SendMessageText envia texto, SendMessageReaction reage a um id de mensagem, e MarkMessageRead envia a confirmação de leitura.

SendMessageImage, SendMessageDocument, SendMessageAudio, SendMessageVideo e SendMessageSticker referenciam mídia hospedada em uma URL pública.

Mídia a partir de um arquivo local

SendFileImage, SendFileDocument, SendFileAudio, SendFileVideo e SendFileSticker fazem upload do arquivo local primeiro, depois o enviam.

Localização e contatos

SendMessageLocation envia coordenadas com nome e endereço. SendMessageContact envia cartões de contato.

Mensagens interativas

SendMessageInteractiveList para listas de seleção, SendMessageInteractiveButtons para botões de resposta.

Templates

SendMessageTemplate recebe o nome do template, o código de idioma e os parâmetros.

Repositório de mídia

UploadMedia, DownloadMedia e DeleteMedia trabalham diretamente com o repositório de mídia da Cloud API.

Servidor de webhook

StartServer e StopServer hospedam o webhook da Meta, configurado por ServerOptions. OnBeforeSubscribe responde à requisição de verificação, OnMessageReceived entrega mensagens de entrada com um argumento var aMarkAsRead, OnMessageSent informa o status de entrega e OnRawMessage expõe o JSON bruto.

TLS e log

TLSOptions configura o cliente HTTPS, OnBeforeSendMessage inspeciona mensagens de saída, e o log em arquivo registra o tráfego para depuração.

Continue explorando

Visão geral do sgcSocialOs dois componentes, edições e licenciamento em um só lugar.
Matriz de recursos: WhatsAppTodo recurso deste componente em forma de tabela.
Aprofundamento na API do WhatsAppA página de referência da API, com links de ajuda online e PDF.
Blog: componente WhatsApp para DelphiUm passo a passo do cliente da Cloud API.
Blog: enviando arquivos locais com a API do WhatsAppFazendo upload de mídia local com os métodos SendFile.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Pronto para enviar mensagens no WhatsApp?

Baixe a versão de avaliação gratuita e conecte a sua aplicação Delphi à API do WhatsApp Business Cloud.