Composant client WhatsApp : sgcSocial | eSeGeCe

Client WhatsApp

TsgcWhatsApp_Client parle à l'API WhatsApp Business Cloud, l'API Graph de Meta pour WhatsApp. Envoie du texte, des médias, des positions, des contacts, des réactions, des listes et boutons interactifs, et des modèles approuvés, puis reçois les réponses et les statuts de livraison via le serveur webhook intégré. Le même composant et la même API en Delphi et en C++ Builder.

TsgcWhatsApp_Client

Copie le Phone Number ID et le jeton d'accès de ton application Meta dans WhatsAppOptions, appelle les méthodes SendMessage..., puis lance StartServer pour héberger le webhook qui reçoit les réponses.

Classe du composant

TsgcWhatsApp_Client

API

API WhatsApp Business Cloud (API Graph de Meta)

Transport

HTTPS pur, toutes les plateformes Delphi

Langages

Delphi, C++ Builder

Aussi dans sgcWebSockets. Le client WhatsApp est aussi livré dans les éditions sgcWebSockets à partir de Professional. sgcSocial est le package autonome, le runtime sgcWebSockets Core est inclus.

Envoyer un texte, recevoir la réponse

Règle WhatsAppOptions.PhoneNumberId et Token, envoie un texte, puis démarre le serveur webhook pour que Meta puisse livrer les messages entrants. TsgcWhatsApp_Client est déclaré dans l'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;
}

Propriétés et méthodes clés

Les membres que tu utilises le plus souvent.

Identifiants de l'API Cloud

WhatsAppOptions.PhoneNumberId et WhatsAppOptions.Token, tous deux issus de ton application Meta. Chaque appel est une requête HTTPS simple vers l'API Graph.

Texte, réactions, accusés

SendMessageText envoie du texte, SendMessageReaction réagit à un identifiant de message, et MarkMessageRead envoie l'accusé de lecture.

Média par lien public

SendMessageImage, SendMessageDocument, SendMessageAudio, SendMessageVideo et SendMessageSticker référencent un média hébergé à une URL publique.

Média depuis un fichier local

SendFileImage, SendFileDocument, SendFileAudio, SendFileVideo et SendFileSticker téléversent d'abord le fichier local, puis l'envoient.

Position et contacts

SendMessageLocation envoie des coordonnées avec un nom et une adresse. SendMessageContact envoie des cartes de contact.

Messages interactifs

SendMessageInteractiveList pour les listes de sélection, SendMessageInteractiveButtons pour les boutons de réponse.

Modèles

SendMessageTemplate prend le nom du modèle, le code de langue et les paramètres.

Stockage des médias

UploadMedia, DownloadMedia et DeleteMedia travaillent directement avec le stockage de médias de l'API Cloud.

Serveur webhook

StartServer et StopServer hébergent le webhook Meta, configuré via ServerOptions. OnBeforeSubscribe répond à la requête de vérification, OnMessageReceived livre les messages entrants avec un argument var aMarkAsRead, OnMessageSent rapporte le statut de livraison et OnRawMessage expose le JSON brut.

TLS et journalisation

TLSOptions configure le client HTTPS, OnBeforeSendMessage inspecte les messages sortants, et la journalisation fichier enregistre le trafic pour le débogage.

Pour aller plus loin

Aperçu de sgcSocialLes deux composants, éditions et licences en un coup d'œil.
Matrice des fonctionnalités : WhatsAppChaque capacité de ce composant sous forme de tableau.
Plongée dans l'API WhatsAppLa page de référence de l'API, avec les liens vers l'aide en ligne et le PDF.
Blog : composant WhatsApp DelphiUn tour d'horizon du client de l'API Cloud.
Blog : envoyer des fichiers locaux avec l'API WhatsAppTéléverser des médias locaux avec les méthodes SendFile.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Prêt à envoyer des messages WhatsApp ?

Télécharge l'essai gratuit et connecte ton application Delphi à l'API WhatsApp Business Cloud.