grammY統合(Telegram Bot API)

なぜgrammY

  • 組み込みのlong-poll + Webhookヘルパー、ミドルウェア、エラーハンドリング、レートリミッターを備えたTS-firstのBot APIクライアント。
  • 手動でfetch + FormDataを組むよりクリーンなメディアヘルパー。すべてのBot APIメソッドをサポート。
  • 拡張可能: カスタムfetch経由のProxy(プロキシ)サポート、セッションミドルウェア(オプション)、型安全なコンテキスト。

出荷したもの

  • 単一クライアントパス: fetchベースの実装は削除されました。grammYがTelegramクライアント(send + gateway)の唯一の方法となり、grammY throttlerがデフォルトで有効になっています。
  • Gateway: monitorTelegramProviderはgrammY Botを構築し、メンション/許可リストゲーティング、getFile/download経由のメディアダウンロードを接続し、sendMessage/sendPhoto/sendVideo/sendAudio/sendDocumentで返信を配信します。webhookCallback経由でlong-pollまたはWebhookをサポートします。
  • Proxy: オプションのchannels.telegram.proxyは、grammYのclient.baseFetchを通じてundici.ProxyAgentを使用します。
  • Webhookサポート: webhook-set.tssetWebhook/deleteWebhookをラップします。webhook.tsはhealth + graceful shutdownでコールバックをホストします。channels.telegram.webhookUrlが設定されている場合、GatewayはWebhookモードを有効にします(それ以外の場合はlong-poll)。
  • Sessions: ダイレクトチャットはエージェントのメインSession(セッション)(agent:<agentId>:<mainKey>)に集約されます。グループはagent:<agentId>:telegram:group:<chatId>を使用します。返信は同じチャンネルにルーティングされます。
  • 設定ノブ: channels.telegram.botTokenchannels.telegram.dmPolicychannels.telegram.groups(許可リスト + メンションデフォルト)、channels.telegram.allowFromchannels.telegram.groupAllowFromchannels.telegram.groupPolicychannels.telegram.mediaMaxMbchannels.telegram.linkPreviewchannels.telegram.proxychannels.telegram.webhookSecretchannels.telegram.webhookUrl
  • ドラフトストリーミング: オプションのchannels.telegram.streamModeは、プライベートトピックチャット(Bot API 9.3+)でsendMessageDraftを使用します。これはチャンネルブロックストリーミングとは別です。
  • テスト: grammYモックはDM + グループメンションゲーティングとアウトバウンド送信をカバーします。より多くのメディア/Webhookフィクスチャが歓迎されます。

オープンクエスチョン

  • Bot API 429に遭遇した場合のオプションのgrammYプラグイン(throttler)。
  • より構造化されたメディアテスト(ステッカー、ボイスノート)を追加。
  • Webhookリッスンポートを設定可能にする(現在、Gateway経由で接続されない限り8787に固定)。