Telegram クライアントコンポーネント: sgcSocial | eSeGeCe

Telegram クライアント

TsgcTDLib_Telegram は、公式の TDLib(Telegram Database Library)上に構築された、フル機能の Telegram クライアントです。ユーザーアカウントまたはボットトークンでサインインするため、Bot API をはるかに超える範囲、つまり自分のチャット、グループ、チャンネル、シークレットチャット、メディア、決済、検索にまで対応します。Delphi と C++ Builder で同じコンポーネント、同じ API が使えます。

TsgcTDLib_Telegram

Telegram.API.ApiIdApiHash を設定し、Telegram.PhoneNumber または Telegram.BotToken でサインインして、メッセージイベントを接続したうえで、Active を True に設定します。

コンポーネントクラス

TsgcTDLib_Telegram

API

公式 TDLib(Telegram Database Library)

プラットフォーム

Windows、macOS、Linux 64 ビット、Android、iOS

対応言語

Delphi、C++ Builder

sgcWebSockets にも含まれます。Telegram クライアントは sgcWebSockets の Standard エディション以上にも含まれています。sgcSocial は単体のパッケージで、sgcWebSockets Core ランタイムを同梱しています。

サインイン、受信、返信

my.telegram.org から取得した api_idapi_hash を設定し、電話番号でサインインして、受信したテキストメッセージをそのまま返信します。TsgcTDLib_TelegramsgcLibs ユニットで宣言されています。

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!");
}

主なプロパティとメソッド

最もよく使うメンバーです。

認証

Telegram.API.ApiIdApiHash がアプリケーションを識別します。Telegram.PhoneNumber でユーザーとして、または Telegram.BotToken でボットとしてサインインします。OnAuthenticationCode がログインコードを求め、OnAuthenticationPassword が 2 要素認証のパスワードを処理し、OnRegisterUser が新規アカウントを扱います。

セッション状態

OnConnectionStatusOnAuthorizationStatus が、生の TDLib 状態を報告します。Telegram.DatabaseDirectory がセッションを永続化するため、次回の起動時に再びコードを求められることはありません。

送信

テキストには SendTextMessageSendRichTextMessage、メディアには SendDocumentMessageSendPhotoMessageSendVideoMessage、グループ化されたメディアには SendMessageAlbum、決済には SendInvoiceMessage を使います。

メッセージの管理

EditTextMessageDeleteMessagesForwardMessagesPinChatMessage が、送信後のメッセージのライフサイクルをカバーします。

チャットとグループ

CreatePrivateChatCreateNewBasicGroupChatCreateNewSupergroupChatCreateNewSecretChat が会話を作成します。JoinChatJoinChatByInviteLink が既存の会話に参加します。

検索とファイル

SearchChatsSearchMessagesSearchContactsSearchPublicChats がネットワークを検索します。DownloadFile が、TDLib が参照する任意のファイルを取得します。

キーボード

コールバックボタンと URL ボタンを備えたインラインキーボードは、AnswerCallbackQuery で応答し、OnNewCallbackQuery で監視します。リプライキーボードには、テキスト、位置情報リクエスト、電話番号リクエストの各ボタンがあります。

ボットと決済

AnswerInlineQuery がインラインクエリに応答し、AnswerPreCheckoutQuerySendPaymentForm が決済フローを進めます。

イベントとエスケープハッチ

OnMessageTextOnMessageDocumentOnMessagePhotoOnMessageVideo が型付きメッセージを配信し、OnMessageSponsoredOnNewChat、生の OnEvent も併せて利用できます。SendCustomRequest は任意の TDLib JSON リクエストを送信します。

プロキシ

HTTP、SOCKS5、MTProto の各プロキシが、TDLib の接続を任意のネットワーク経路にルーティングします。

さらに詳しく

sgcSocial の概要両コンポーネント、エディション、ライセンスの全体像です。
機能一覧: Telegramこのコンポーネントの全機能を表形式で確認できます。
Telegram API 詳細解説オンラインヘルプと PDF へのリンクを含む API リファレンスページです。
ブログ: Delphi 向け Telegram クライアントこのコンポーネントで Telegram クライアントを構築する手順を解説します。
ブログ: Android 版 Telegram クライアントAndroid 上で TDLib クライアントを動かす方法です。
ブログ: iOS 版 Telegram クライアントiOS 上で TDLib クライアントを動かす方法です。
最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

はじめてみませんか

無料体験版をダウンロードして、Delphi や C++ Builder から最初の Telegram メッセージを送信してみましょう。