Discord Gateway API
WebSocket 経由で Discord ゲートウェイに接続し、メッセージ、プレゼンス、ギルド、ボイス状態イベントにリアルタイムで反応するボットを構築できます。
WebSocket 経由で Discord ゲートウェイに接続し、メッセージ、プレゼンス、ギルド、ボイス状態イベントにリアルタイムで反応するボットを構築できます。
Discord ゲートウェイ WebSocket API 向けの型付き Delphi/C++ Builder クライアント — ハートビート、識別、インテント、シャーディング、イベントディスパッチを処理します。
TsgcWSAPI_Discord
Windows, macOS, Linux, iOS, Android
Standard / Professional / Enterprise
TsgcWebSocketClient と組み合わせて Discord.Token と Discord.Intents を設定し、OnDiscordMessageCreate / OnDiscordReady でゲートウェイイベントを処理します。
uses
sgcWebSocket, sgcWebSocket_API_Discord;
var
WSClient: TsgcWebSocketClient;
Discord: TsgcWSAPI_Discord;
begin
WSClient := TsgcWebSocketClient.Create(nil);
Discord := TsgcWSAPI_Discord.Create(nil);
Discord.Client := WSClient;
Discord.Discord.Token := 'your-bot-token';
Discord.OnDiscordReady := procedure(Connection: TsgcWSConnection;
const aPayload: string)
begin
Memo1.Lines.Add('Discord ready');
end;
Discord.OnDiscordMessageCreate := procedure(Connection: TsgcWSConnection;
const aMessage: string)
begin
Memo1.Lines.Add(aMessage);
end;
WSClient.Active := True;
end;
// uses: sgcWebSocket, sgcWebSocket_API_Discord
TsgcWebSocketClient *WSClient = new TsgcWebSocketClient(this);
TsgcWSAPI_Discord *Discord = new TsgcWSAPI_Discord(this);
Discord->Client = WSClient;
Discord->Discord->Token = "your-bot-token";
WSClient->Active = true;
TsgcWebSocketClient 上に Discord ゲートウェイプロトコルを実装しています:IDENTIFY、RESUME、HEARTBEAT、ディスパッチルーティング。
接続時にコンポーネントはトークン、インテント、プロパティとともに IDENTIFY を送信します。切断時には最後のシーケンス番号とともに RESUME を送信してイベントが失われないようにします。
Discord は HELLO でゲートウェイが返す間隔でオペコード 1 の HEARTBEAT メッセージを要求します。コンポーネントはこれをスケジュールし、HEARTBEAT_ACK を監視してゾンビ接続を検出します。
Discord.Intents でゲートウェイが配信するイベントカテゴリを選択します(GUILD_MESSAGES、GUILD_MEMBERS、MESSAGE_CONTENT、VOICE_STATES — 完全なインテントビットマスク)。
各ゲートウェイディスパッチイベントは型付きプロパティとして公開されます:OnDiscordReady、OnDiscordMessageCreate、OnDiscordGuildCreate、OnDiscordPresenceUpdate など。
VOICE_STATE_UPDATE と VOICE_SERVER_UPDATE イベントを受信します — ボイス WebSocket エンドポイントと組み合わせてボイスチャネルの自動化に活用できます。
ボットが推奨ギルド数を超えた場合に Discord のシャーディングゲートウェイに参加するには、Discord.Shard と Discord.ShardCount を設定します。
本コンポーネントが実装する API の公式情報源です。
コンポーネントリファレンスへのディープリンク、すぐに実行できるデモプロジェクト、体験版のダウンロードをご利用ください。
| オンラインヘルプ — API_Discord 本コンポーネントのプロパティ、メソッド、イベントの完全なリファレンスです。 | Open | |
| 体験版 — sgcWebSockets sgcWebSockets 体験版パッケージで Discord ボットを構築できます。 | Open | |
| 技術ドキュメント (PDF) 機能、クイックスタート、Delphi および C++ Builder のコードサンプルと一次情報源リファレンス — 本コンポーネントのみ。 | Open | |
| ユーザーマニュアル (PDF) ライブラリ内のすべてのコンポーネントを網羅した包括的なマニュアルです。 | 開く |