Komponent WhatsApp Client: sgcSocial | eSeGeCe

WhatsApp Client

TsgcWhatsApp_Client komunikuje się z WhatsApp Business Cloud API, czyli Graph API firmy Meta dla WhatsApp. Wysyłaj tekst, multimedia, lokalizacje, kontakty, reakcje, interaktywne listy i przyciski oraz zatwierdzone szablony, a następnie odbieraj odpowiedzi i status dostarczenia przez wbudowany serwer webhooka. Ten sam komponent i to samo API w Delphi oraz C++ Builder.

TsgcWhatsApp_Client

Skopiuj Phone Number ID i token dostępu ze swojej aplikacji Meta do WhatsAppOptions, wywołaj metody SendMessage..., a następnie StartServer, aby hostować webhook odbierający odpowiedzi.

Klasa komponentu

TsgcWhatsApp_Client

API

WhatsApp Business Cloud API (Graph API firmy Meta)

Transport

Czyste HTTPS, wszystkie platformy Delphi

Języki

Delphi, C++ Builder

Także wewnątrz sgcWebSockets. Klient WhatsApp jest dostarczany także wewnątrz sgcWebSockets od edycji Professional wzwyż. sgcSocial to pakiet samodzielny, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie.

Wyślij tekst, odbierz odpowiedź

Ustaw WhatsAppOptions.PhoneNumberId i Token, wyślij tekst, a następnie uruchom serwer webhooka, aby Meta mogła dostarczać wiadomości przychodzące. TsgcWhatsApp_Client jest zadeklarowany w module 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;
}

Kluczowe właściwości i metody

Składowe, po które sięgasz najczęściej.

Poświadczenia Cloud API

WhatsAppOptions.PhoneNumberId i WhatsAppOptions.Token, oba z twojej aplikacji Meta. Każde wywołanie to zwykłe żądanie HTTPS do Graph API.

Tekst, reakcje, potwierdzenia

SendMessageText wysyła tekst, SendMessageReaction reaguje na id wiadomości, a MarkMessageRead wysyła potwierdzenie przeczytania.

Multimedia z publicznego łącza

SendMessageImage, SendMessageDocument, SendMessageAudio, SendMessageVideo i SendMessageSticker odwołują się do multimediów hostowanych pod publicznym adresem URL.

Multimedia z pliku lokalnego

SendFileImage, SendFileDocument, SendFileAudio, SendFileVideo i SendFileSticker najpierw przesyłają plik lokalny, a potem go wysyłają.

Lokalizacja i kontakty

SendMessageLocation wysyła współrzędne z nazwą i adresem. SendMessageContact wysyła wizytówki kontaktowe.

Wiadomości interaktywne

SendMessageInteractiveList dla list wyboru, SendMessageInteractiveButtons dla przycisków odpowiedzi.

Szablony

SendMessageTemplate przyjmuje nazwę szablonu, kod języka i parametry.

Magazyn multimediów

UploadMedia, DownloadMedia i DeleteMedia pracują bezpośrednio z magazynem multimediów Cloud API.

Serwer webhooka

StartServer i StopServer hostują webhook Meta, konfigurowany przez ServerOptions. OnBeforeSubscribe odpowiada na żądanie weryfikacyjne, OnMessageReceived dostarcza wiadomości przychodzące z argumentem var aMarkAsRead, OnMessageSent raportuje status dostarczenia, a OnRawMessage udostępnia surowy JSON.

TLS i logowanie

TLSOptions konfiguruje klienta HTTPS, OnBeforeSendMessage sprawdza wiadomości wychodzące, a logowanie do pliku zapisuje ruch na potrzeby diagnostyki.

Poznawaj dalej

Przegląd sgcSocialOba komponenty, edycje i licencjonowanie w skrócie.
Matryca funkcji: WhatsAppKażda możliwość tego komponentu w formie tabeli.
Dogłębne omówienie API WhatsAppStrona referencyjna API, z odnośnikami do pomocy online i PDF.
Blog: Komponent WhatsApp dla DelphiPrzewodnik po kliencie Cloud API.
Blog: Wysyłanie lokalnych plików przez API WhatsAppPrzesyłanie lokalnych multimediów metodami SendFile.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy wysyłać wiadomości WhatsApp?

Pobierz bezpłatną wersję próbną i połącz swoją aplikację Delphi z WhatsApp Business Cloud API.