Telegram TDLib クライアント
Delphi / C++Builder で Telegram のユーザーアカウントまたはボットアプリケーションを構築します。公式 Telegram TDLib をラップし、認証、チャット、メッセージ、更新イベントを公開します。
Delphi / C++Builder で Telegram のユーザーアカウントまたはボットアプリケーションを構築します。公式 Telegram TDLib をラップし、認証、チャット、メッセージ、更新イベントを公開します。
公式 Telegram TDLib (tdjson) 向けの Delphi / C++Builder ラッパーです。認証ステートマシンを制御し、型付きのメッセージ送受信イベントを公開するとともに、その他すべての TDLib 更新を OnEvent を通じて配信します。
TsgcTDLib_Telegram
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
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 パスワード) を進行させ、ローカルデータベースディレクトリ配下にセッションを永続化します。
SendTextMessage、SendPhotoMessage、SendVideoMessage、SendDocumentMessage、SendMessageAlbum が、主な TDLib メッセージコンテンツタイプをカバーします。
GetChats、GetChat、SearchPublicChat、GetUser により、Telegram のアドレス帳および参加中のチャネル / グループを型付きレスポンスとして取得できます。
OnEvent は、TDLib のすべての updateXxx イベント (新着メッセージ、ユーザーのタイピング、チャネル投稿、編集、削除など) を、生のイベント名と JSON として配信し、下流でのルーティングに利用できます。一般的なケースには、型付きの OnMessageText、OnNewChat、OnNewCallbackQuery イベントも用意されています。
公式の 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) ライブラリ内のすべてのコンポーネントを網羅した総合マニュアルです。 | 開く |