Delphi & C++ Builder 向け Telegram API クライアント | eSeGeCe

Telegram TDLib クライアント

Delphi / C++Builder で Telegram のユーザーアカウントまたはボットアプリケーションを構築します。公式 Telegram TDLib をラップし、認証、チャット、メッセージ、更新イベントを公開します。

TsgcTDLib_Telegram

公式 Telegram TDLib (tdjson) 向けの Delphi / C++Builder ラッパーです。認証ステートマシンを制御し、型付きのメッセージ送受信イベントを公開するとともに、その他すべての TDLib 更新を OnEvent を通じて配信します。

コンポーネントクラス

TsgcTDLib_Telegram

プロトコル

Telegram TDLib

プラットフォーム

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 の認証ステートマシン (電話番号、認証コード、オプションの 2FA パスワード) を進行させ、ローカルデータベースディレクトリ配下にセッションを永続化します。

メッセージ送信

SendTextMessageSendPhotoMessageSendVideoMessageSendDocumentMessageSendMessageAlbum が、主な TDLib メッセージコンテンツタイプをカバーします。

チャットと連絡先

GetChatsGetChatSearchPublicChatGetUser により、Telegram のアドレス帳および参加中のチャネル / グループを型付きレスポンスとして取得できます。

更新ストリーム

OnEvent は、TDLib のすべての updateXxx イベント (新着メッセージ、ユーザーのタイピング、チャネル投稿、編集、削除など) を、生のイベント名と JSON として配信し、下流でのルーティングに利用できます。一般的なケースには、型付きの 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 アプリケーションに追加しましょう。