sgcWebSockets 4.4.2 から、iOS64 デバイスで Telegram がサポートされます。 つまり、ご自身の Telegram クライアントを構築できます。TDLib がネットワーク実装の詳細、暗号化、ローカルデータストレージのすべてを処理します。TDLib はすべての Telegram 機能をサポートします。
TDLib(Telegram Database Library)の利点
- クロスプラットフォーム: Windows、Android、iOS、macOS、Linux などで使用可能です。現在、sgcWebSockets では Windows(win32 と win64)のみがサポートされています。
- 使いやすい: アプリケーションと Telegram 間の通信に JSON メッセージを使用します。
- 高性能: Telegram Bot API では、各 TDLib インスタンスが 24000 を超えるボットを処理します。
- 一貫性: TDLib はすべての更新が正しい順序で配信されることを保証します。
- 信頼性: TDLib は低速で信頼性の低いインターネット接続でも安定動作します。
- セキュア: すべてのローカルデータはユーザー提供の暗号化キーで暗号化されます。
- 完全非同期: TDLib へのリクエストは互いをブロックしません。レスポンスは利用可能になったときに送信されます。
設定
ライブラリ libtdjson.a を以下のディレクトリにコピーしてください。
- C:\Program Files (x86)\Embarcadero\Studio\<IDE Version>\lib\iosDevice64\debug
- C:\Program Files (x86)\Embarcadero\Studio\<IDE Version>\lib\iosDevice64\release
<IDE Version> は RAD Studio バージョンを示す番号です(例:RAD Studio 10.4 は 21.0)。
Telegram を作成する
API ID を取得し Telegram API を使ってご自身のアプリケーションを開発するには、以下を行う必要があります。
- 任意のアプリケーションを使って Telegram にサインアップします。
- Telegram コアにログインします:https://my.telegram.org。
- API development tools に移動し、フォームに記入します。
- 基本アドレスと、ユーザー認可に必要な api_id および api_hash パラメーターを取得します。
- 現時点では、各電話番号には 1 つの api_id しか紐付けられません。
これらの値は Telegram コンポーネントの Telegram.API プロパティに設定する必要があります。認証するには、電話番号(国際コード付き)を設定する必要があります(例:34699123456)。
以下のパラメーターを設定できます。
- ApplicationVersion: アプリケーションのバージョン(例:1.0)
- DeviceModel: デバイスモデル(例:desktop)
- LanguageCode: ユーザーの言語コード(例:en)。
- SystemVersion: オペレーティングシステムのバージョン(例:windows)。
Telegram コンポーネントを設定したら、Active プロパティを true に設定でき、プログラムが Telegram への接続を試みます。
iOS サンプルコード
oTelegram := TsgcTDLib_Telegram.Create(nil);
oTelegram.Telegram.API.ApiHash := 'your api hash';
oTelegram.Telegram.API.ApiId := 'your api id';
oTelegram.PhoneNumber := 'your phone number';
oTelegram.ApplicationVersion := '1.0';
oTelegram.DeviceModel := 'Desktop';
oTelegram.LanguageCode := 'en';
oTelegram.SystemVersion := 'iOS';
oTelegram.Active := true;
procedure OnAuthenticationCode(Sender: TObject; var Code: string);
begin
InputBox('Telegram', 'Introduce Telegram Code', '');
end;
procedure OnMessageText(Sender: TObject; MessageText: TsgcTelegramMessageText);
begin
Log('Message Received: ' + MessageText.Text);
end;
procedure OnConnectionStatus(Sender: TObject; const Status: string);
begin
if Status = 'connectionStateReady' then
oTelegram.SendTextMessage('1234', 'Hello Telegram!');
end;


iOS Telegram クライアントのスクリーンショット
