适用于 Delphi 和 C++ Builder 的 Telegram API 客户端 | eSeGeCe

Telegram TDLib 客户端

在 Delphi/C++ Builder 中构建 Telegram 用户账户或机器人应用程序。封装官方 Telegram TDLib,公开身份验证、聊天、消息和更新事件。

TsgcTDLib_Telegram

官方 Telegram TDLib(tdjson)的 Delphi/C++ Builder 封装器。驱动身份验证状态机,提供类型化的消息发送/接收事件,并通过 OnEvent 传递其他所有 TDLib 更新。

组件类

TsgcTDLib_Telegram

支持平台

Windows, macOS, Linux, iOS, Android

版本

Standard / Professional / Enterprise

设置 TDLib,验证身份,发送消息

设置 Telegram.API.ApiId / ApiHash 和 Telegram.PhoneNumber,绑定 OnAuthenticationCode 处理登录流程,并在 OnAuthorizationStatus 报告 authorizationStateReady 后发送消息。

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->OnAuthorizationStatus = TelegramAuthorizationStatus;
Telegram->OnMessageText = TelegramMessageText;

Telegram->Active = true;

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

void __fastcall TForm1::TelegramAuthorizationStatus(TObject *Sender, const AnsiString Status)
{
  if (Status == "authorizationStateReady")
    Telegram->GetChats();
}

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

内部功能

官方 TDLib(tdjson)共享库的 Delphi 外观——与官方 Telegram 客户端使用相同的协议。

身份验证流程

组件驱动 TDLib 身份验证状态机:电话号码、验证码、可选的双因素验证密码,并将会话持久保存在本地数据库目录中。

发送消息

SendTextMessageSendPhotoMessageSendVideoMessageSendDocumentMessageSendMessageAlbum 涵盖主要的 TDLib 消息内容类型。

聊天与联系人

GetChatsGetChatSearchPublicChatGetUser 以类型化响应的形式公开 Telegram 通讯录和已加入的频道/群组。

更新流

OnEvent 以原始事件名称加 JSON 的形式传递每个 TDLib updateXxx 事件——新消息、用户输入、频道帖子、编辑、删除——供下游路由使用,同时针对常见场景提供类型化的 OnMessageTextOnNewChatOnNewCallbackQuery 事件。

原生 TDLib

使用官方 tdjson.dll / libtdjson.so / libtdjson.dylib——与官方 Telegram 客户端相同的端到端加密保障。

跨平台

TDLib 支持 Windows、macOS、Linux、Android 和 iOS。组件会按平台自动定位并加载原生库;您只需通过上述事件和方法处理类型化的桥接。

规范与参考

本组件实现的 API 的权威来源。

文档与演示

直接访问组件参考文档,获取即用型演示项目,并下载试用版。

在线帮助 — API_Telegram 本组件的完整属性、方法和事件参考。
演示项目 — Demos\50.Other\01.Telegram_Client 即用型示例项目,随 sgcWebSockets 包提供——请在下方下载试用版。
技术文档 (PDF) 本组件的功能介绍、快速入门、Delphi & C++ Builder 代码示例及主要来源参考。
用户手册 (PDF) 涵盖库中所有组件的综合手册。
超值之选:All-AccesseSeGeCe 全部产品,含高级支持,每年 €1,059 起。
查看 All-Access 价格

准备好构建 Telegram 客户端了吗?

下载免费试用版,将 Telegram 消息功能添加到您的 Delphi 应用程序中。