Composant client Telegram : sgcSocial | eSeGeCe

Client Telegram

TsgcTDLib_Telegram est un client Telegram complet bâti sur le TDLib officiel (Telegram Database Library). Il se connecte avec un compte utilisateur ou un jeton de bot, il va donc bien au-delà de l'API Bot : tes propres discussions, groupes, canaux, discussions secrètes, médias, paiements et recherche. Le même composant et la même API en Delphi et en C++ Builder.

TsgcTDLib_Telegram

Règle Telegram.API.ApiId et ApiHash, connecte-toi avec Telegram.PhoneNumber ou Telegram.BotToken, branche les événements de message, puis règle Active sur True.

Classe du composant

TsgcTDLib_Telegram

API

TDLib officiel (Telegram Database Library)

Plateformes

Windows, macOS, Linux 64 bits, Android, iOS

Langages

Delphi, C++ Builder

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

Se connecter, recevoir, répondre

Règle ton api_id et ton api_hash depuis my.telegram.org, connecte-toi avec un numéro de téléphone, et fais écho aux messages texte entrants. TsgcTDLib_Telegram est déclaré dans l'unité sgcLibs.

uses
  sgcLibs;

var
  Telegram: TsgcTDLib_Telegram;
begin
  Telegram := TsgcTDLib_Telegram.Create(nil);
  Telegram.Telegram.API.ApiId   := '123456';
  Telegram.Telegram.API.ApiHash := 'your-api-hash';
  Telegram.Telegram.PhoneNumber := '+34600111222';

  Telegram.OnAuthenticationCode  := TelegramAuthenticationCode;
  Telegram.OnAuthorizationStatus := TelegramAuthorizationStatus;
  Telegram.OnMessageText         := TelegramMessageText;

  Telegram.Active := True;
end;

procedure TForm1.TelegramAuthenticationCode(Sender: TObject;
  var Code: string);
begin
  Code := InputBox('Telegram', 'Enter the code you received', '');
end;

procedure TForm1.TelegramAuthorizationStatus(Sender: TObject;
  const Status: string);
begin
  if Status = 'authorizationStateReady' then
    Telegram.GetChats;
end;

procedure TForm1.TelegramMessageText(Sender: TObject;
  MessageText: TsgcTelegramMessageText);
begin
  Memo1.Lines.Add(MessageText.ChatId + ': ' + MessageText.Text);
  Telegram.SendTextMessage(MessageText.ChatId, 'received!');
end;
// include: sgcLibs.hpp

TsgcTDLib_Telegram *Telegram = new TsgcTDLib_Telegram(this);
Telegram->Telegram->API->ApiId   = "123456";
Telegram->Telegram->API->ApiHash = "your-api-hash";
Telegram->Telegram->PhoneNumber  = "+34600111222";

Telegram->OnAuthenticationCode = TelegramAuthenticationCode;
Telegram->OnMessageText        = TelegramMessageText;

Telegram->Active = true;

void __fastcall TForm1::TelegramAuthenticationCode(TObject *Sender,
    UnicodeString &Code)
{
  Code = InputBox("Telegram", "Enter the code you received", "");
}

void __fastcall TForm1::TelegramMessageText(TObject *Sender,
    TsgcTelegramMessageText *MessageText)
{
  Memo1->Lines->Add(MessageText->ChatId + ": " + MessageText->Text);
  Telegram->SendTextMessage(MessageText->ChatId, "received!");
}

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

Les membres que tu utilises le plus souvent.

Authentification

Telegram.API.ApiId et ApiHash identifient ton application. Connecte-toi avec Telegram.PhoneNumber, ou avec Telegram.BotToken pour un bot. OnAuthenticationCode demande le code de connexion, OnAuthenticationPassword le mot de passe 2FA, et OnRegisterUser couvre les nouveaux comptes.

État de session

OnConnectionStatus et OnAuthorizationStatus rapportent les états TDLib bruts. Telegram.DatabaseDirectory conserve la session, le prochain démarrage ne redemande donc pas de code.

Envoi

SendTextMessage et SendRichTextMessage pour le texte, SendDocumentMessage, SendPhotoMessage et SendVideoMessage pour les médias, SendMessageAlbum pour les médias groupés et SendInvoiceMessage pour les paiements.

Gestion des messages

EditTextMessage, DeleteMessages, ForwardMessages et PinChatMessage couvrent le cycle de vie après l'envoi.

Discussions et groupes

CreatePrivateChat, CreateNewBasicGroupChat, CreateNewSupergroupChat et CreateNewSecretChat créent des conversations. JoinChat et JoinChatByInviteLink rejoignent celles qui existent déjà.

Recherche et fichiers

SearchChats, SearchMessages, SearchContacts et SearchPublicChats interrogent le réseau. DownloadFile récupère tout fichier référencé par TDLib.

Claviers

Claviers inline avec boutons de rappel et d'URL, dont on répond via AnswerCallbackQuery et qu'on observe avec OnNewCallbackQuery. Les claviers de réponse proposent des boutons texte, de demande de position et de demande de numéro de téléphone.

Bots et paiements

AnswerInlineQuery répond aux requêtes inline, AnswerPreCheckoutQuery et SendPaymentForm pilotent le flux de paiement.

Événements et échappatoire

OnMessageText, OnMessageDocument, OnMessagePhoto et OnMessageVideo livrent des messages typés, avec OnMessageSponsored, OnNewChat et un OnEvent brut à côté. SendCustomRequest envoie n'importe quelle requête JSON TDLib.

Proxys

Les proxys HTTP, SOCKS5 et MTProto acheminent la connexion TDLib via le chemin réseau de ton choix.

Pour aller plus loin

Aperçu de sgcSocialLes deux composants, éditions et licences en un coup d'œil.
Matrice des fonctionnalités : TelegramChaque capacité de ce composant sous forme de tableau.
Plongée dans l'API TelegramLa page de référence de l'API, avec les liens vers l'aide en ligne et le PDF.
Blog : client Telegram pour DelphiUn tour d'horizon de la construction d'un client Telegram avec ce composant.
Blog : client Telegram AndroidFaire tourner le client TDLib sous Android.
Blog : client Telegram iOSFaire tourner le client TDLib sous iOS.
Meilleur rapport qualité-prix : All-AccessTous les produits eSeGeCe, Support Premium inclus, à partir de €1,059/an.
Voir les tarifs All-Access

Prêt à te lancer ?

Télécharge l'essai gratuit et envoie ton premier message Telegram depuis Delphi ou C++ Builder.