grammY Entegrasyonu (Telegram Bot API)
Neden grammY
- TS-öncelikli Bot API istemcisi; yerleşik long-poll + webhook yardımcıları, middleware, hata yönetimi ve hız sınırlayıcı içerir.
- fetch + FormData’yı elle yazmaya kıyasla daha temiz medya yardımcıları; tüm Bot API yöntemlerini destekler.
- Genişletilebilir: özel fetch ile proxy desteği, oturum middleware’i (isteğe bağlı), tür güvenli bağlam.
What we shipped
- Tek istemci yolu: fetch tabanlı uygulama kaldırıldı; grammY artık varsayılan olarak etkin olan grammY throttler ile tek Telegram istemcisidir (gönderme + gateway).
- Gateway:
monitorTelegramProviderbir grammYBotoluşturur; mention/allowlist kapılamasını bağlar,getFile/downloadüzerinden medya indirmeyi yapar ve yanıtlarısendMessage/sendPhoto/sendVideo/sendAudio/sendDocumentile iletir.webhookCallbacküzerinden long-poll veya webhook’u destekler. - Proxy: isteğe bağlı
channels.telegram.proxy, grammY’ninclient.baseFetch’i üzerindenundici.ProxyAgentkullanır. - Webhook desteği:
webhook-set.ts,setWebhook/deleteWebhook’u sarmalar;webhook.tssağlık denetimi + zarif kapatma ile geri çağrıyı barındırır. Gateway,channels.telegram.webhookUrl+channels.telegram.webhookSecretayarlandığında webhook modunu etkinleştirir (aksi halde long-poll yapar). - Oturumlar: doğrudan sohbetler ajan ana oturumunda (
agent:<agentId>:<mainKey>) birleştirilir; gruplaragent:<agentId>:telegram:group:<chatId>kullanır; yanıtlar aynı kanala yönlendirilir. - Yapılandırma ayarları:
channels.telegram.botToken,channels.telegram.dmPolicy,channels.telegram.groups(allowlist + mention varsayılanları),channels.telegram.allowFrom,channels.telegram.groupAllowFrom,channels.telegram.groupPolicy,channels.telegram.mediaMaxMb,channels.telegram.linkPreview,channels.telegram.proxy,channels.telegram.webhookSecret,channels.telegram.webhookUrl. - Canlı yayın önizleme: isteğe bağlı
channels.telegram.streamMode, geçici bir mesaj gönderir ve bunueditMessageTextile günceller. Bu, kanal blok halinde akıştan ayrıdır. - Testler: grammY mock’ları DM + grup mention kapılamasını ve giden gönderimi kapsar; daha fazla medya/webhook fikstürü memnuniyetle karşılanır.
- Bot API 429’larına takılırsak isteğe bağlı grammY eklentileri (throttler).
- Daha yapılandırılmış medya testleri eklemek (sticker’lar, sesli notlar).
- Webhook dinleme portunu yapılandırılabilir yapmak (şu anda gateway üzerinden bağlanmadıkça 8787’ye sabit).