sgcSocial 機能一覧
sgcSocial でできることすべてを、2 つのクライアントコンポーネントと、それらが実装する API に対応付けて示します。すべての機能は Delphi と C++ Builder で同じように動作し、すべてのライセンスに完全なソースコードが付属します。各コンポーネントをクリックすると、使い方とサンプルを掲載した個別ページに移動します。
sgcSocial でできることすべてを、2 つのクライアントコンポーネントと、それらが実装する API に対応付けて示します。すべての機能は Delphi と C++ Builder で同じように動作し、すべてのライセンスに完全なソースコードが付属します。各コンポーネントをクリックすると、使い方とサンプルを掲載した個別ページに移動します。
公式 TDLib によるフルクライアント
Business Cloud API
Webhook サーバーとリアルタイム更新
Delphi 7 から 13、C++ Builder
sgcSocial は単体で完結しています。sgcWebSockets Core ランタイムを同梱して出荷されるため、アドオンではありません。
sgcWebSockets にも含まれます。Telegram クライアントは sgcWebSockets の Standard エディション以上にも、WhatsApp クライアントは Professional エディション以上にも含まれています。All-Access にはすべてが含まれます。sgcSocial は、メッセージングクライアントだけを必要とするチーム向けの単体パッケージです。
2 つのメッセージングネットワークが、SGC Social パレットページに登録されます。
| コンポーネント | クラス | ネットワーク | 説明 |
|---|---|---|---|
| Telegram クライアント | TsgcTDLib_Telegram | Telegram | 公式 TDLib によるフル機能の Telegram クライアント。ユーザーアカウントとボット、チャットとグループ、メディア、インラインキーボード、決済、プロキシに対応します。 |
| WhatsApp クライアント | TsgcWhatsApp_Client | WhatsApp Business Cloud API クライアント。テキスト、メディア、テンプレート、インタラクティブメッセージに対応し、受信イベント用の Webhook サーバーを内蔵しています。 |
TsgcTDLib_Telegram は公式の TDLib(Telegram Database Library)上に構築されているため、ユーザーアカウントまたはボットとしてサインインし、Telegram の全機能セットに到達できます。
| 機能 | API | 備考 |
|---|---|---|
| ユーザーとしてサインイン | Telegram.PhoneNumber | 電話番号による認証です。OnAuthenticationCode がログインコードを求め、OnAuthenticationPassword が 2 要素認証のパスワードを処理し、OnRegisterUser が新規アカウントを扱います。 |
| ボットとしてサインイン | Telegram.BotToken | 同じコンポーネントが TDLib を通じてボットアカウントを操作します。Bot API のサブセットではなく、フルクライアントの機能を利用できます。 |
| API 認証情報 | Telegram.API.ApiId、Telegram.API.ApiHash | my.telegram.org でアプリケーション向けに発行されます。 |
| 接続状態 | OnConnectionStatus、OnAuthorizationStatus | authorizationStateReady のような、生の TDLib 状態文字列です。 |
| テキストの送信 | SendTextMessage、SendRichTextMessage | 任意のチャット ID へのプレーンテキストとリッチテキストです。 |
| メディアの送信 | SendDocumentMessage、SendPhotoMessage、SendVideoMessage | ファイル、写真、動画です。グループ化されたメディアには SendMessageAlbum を使います。 |
| 決済 | SendInvoiceMessage、AnswerPreCheckoutQuery、SendPaymentForm | Telegram の決済フローをエンドツーエンドで扱います。 |
| 編集と管理 | EditTextMessage、DeleteMessages、ForwardMessages、PinChatMessage | 送信後のメッセージのライフサイクルです。 |
| チャットとグループ | CreatePrivateChat、CreateNewBasicGroupChat、CreateNewSupergroupChat、JoinChat、JoinChatByInviteLink | 会話をプログラムから作成・参加できます。 |
| シークレットチャット | CreateNewSecretChat | TDLib がエンドツーエンド暗号化された Telegram のシークレットチャットを処理します。 |
| 検索 | SearchChats、SearchMessages、SearchContacts、SearchPublicChats | チャット、メッセージ、連絡先、公開チャンネルを横断して検索します。 |
| ファイル | DownloadFile | TDLib が ID で参照する任意のファイルをダウンロードします。 |
| インラインキーボード | AnswerCallbackQuery、OnNewCallbackQuery | 送信するメッセージに付加する、コールバックボタンと URL ボタンです。 |
| リプライキーボード | 送信メソッドのキーボードマークアップ | テキストボタン、位置情報リクエストボタン、電話番号リクエストボタンです。 |
| インラインクエリ | AnswerInlineQuery | ボット宛てのインラインクエリに応答します。 |
| メッセージイベント | OnMessageText、OnMessageDocument、OnMessagePhoto、OnMessageVideo | 型付きの受信メッセージです。OnMessageSponsored と OnNewChat も加わります。 |
| 生のエスケープハッチ | SendCustomRequest、OnEvent | 任意の TDLib JSON リクエストを送信し、すべての生の更新を観測できます。 |
| プロキシ | HTTP、SOCKS5、MTProto | TDLib の接続をプロキシ経由でルーティングします。 |
TsgcWhatsApp_Client は素の HTTPS 経由で Meta の Graph API と通信するため、ネイティブライブラリの配備が不要で、あらゆる Delphi プラットフォームに対応します。
| 機能 | API | 備考 |
|---|---|---|
| Cloud API のセットアップ | WhatsAppOptions.PhoneNumberId、WhatsAppOptions.Token | Meta アプリケーションから取得する 2 つの値です。すべての呼び出しは Graph API への素の HTTPS リクエストです。 |
| テキスト | SendMessageText | 任意の WhatsApp 番号へのテキストです。 |
| 公開リンクによるメディア | SendMessageImage、SendMessageDocument、SendMessageAudio、SendMessageVideo、SendMessageSticker | メディアは公開 URL に置かれています。 |
| ローカルファイルからのメディア | SendFileImage、SendFileDocument、SendFileAudio、SendFileVideo、SendFileSticker | コンポーネントがまずローカルファイルをアップロードしてから送信します。 |
| リアクション | SendMessageReaction | 受信したメッセージ ID に絵文字でリアクションします。 |
| 位置情報と連絡先 | SendMessageLocation、SendMessageContact | 名前と住所を伴う座標、および連絡先カードです。 |
| インタラクティブメッセージ | SendMessageInteractiveList、SendMessageInteractiveButtons | 選択リストとリプライボタンです。 |
| テンプレート | SendMessageTemplate | テンプレート名、言語コード、パラメータです。 |
| メディア管理 | UploadMedia、DownloadMedia、DeleteMedia | Cloud API のメディアストアを直接操作します。 |
| 既読 | MarkMessageRead | 受信したメッセージを既読としてマークします。 |
| 送信前フック | OnBeforeSendMessage | 送信前にメッセージを検査します。 |
| TLS とログ | TLSOptions、ファイルログ | HTTPS 呼び出しの TLS 設定と、通信内容のファイルログです。 |
WhatsApp は受信トラフィックを Webhook にプッシュし、それをコンポーネントがホストします。Telegram には Webhook がまったく不要で、TDLib が自身の接続を保持しイベントを発生させます。
| 項目 | 内容 |
|---|---|
| WhatsApp Webhook エンドポイント | StartServer と StopServer が、自分のプロセス内で Meta の Webhook をホストします。ServerOptions で IP、ポート、SSL 証明書、エンドポイントパス、検証トークンを設定します。 |
| Webhook の検証 | OnBeforeSubscribe が Meta の検証リクエストで発生し、エンドポイントがサブスクリプションのハンドシェイクに応答します。 |
| 受信 WhatsApp メッセージ | OnMessageReceived が各受信メッセージを渡し、既読を送信する var aMarkAsRead 引数を伴います。 |
| 配信ステータス | OnMessageSent が送信したメッセージのステータスを報告します。 |
| 生のペイロード | OnRawMessage が、Meta が投稿した Webhook の JSON をそのまま公開します。 |
| Telegram の更新 | Webhook は不要です。TDLib が Telegram への独自の接続を保持し、新着メッセージは OnMessageText、OnMessageDocument、OnMessagePhoto、OnMessageVideo のイベントとして届きます。 |
| その他の Telegram イベント | OnNewChat、OnNewCallbackQuery、OnMessageSponsored が、新規チャット、キーボードのコールバック、スポンサーメッセージを扱います。 |
| 生の Telegram イベント | OnEvent が、すべての TDLib の更新を生の JSON として渡します。 |
公式 API と、対応するすべてのコンパイラで共通のソースです。
| 項目 | 内容 |
|---|---|
| Telegram | 公式の TDLib(Telegram Database Library)、Telegram 自身のクライアントライブラリです。 |
| Meta Graph API の一部である WhatsApp Business Cloud API を、HTTPS 経由で利用します。 | |
| Telegram のプラットフォーム | ネイティブの TDLib ライブラリを通じて、Windows、macOS、Linux 64 ビット、Android、iOS に対応します。 |
| WhatsApp のプラットフォーム | 純粋な HTTPS のため、あらゆる Delphi プラットフォームに対応します。 |
| コンパイラ | Delphi および C++ Builder 7 から 13 まで。 |
| エディション | Telegram クライアントは sgcWebSockets の Standard エディション以上にも、WhatsApp クライアントは Professional エディション以上にも含まれています。All-Access にはすべてが含まれます。 |
| ライセンス | 単体で完結します。sgcWebSockets Core ランタイムを同梱し、完全なソースコードが含まれます。 |