grammY एकीकरण (Telegram Bot API)¶
grammY क्यों¶
- TS-प्रथम Bot API क्लाइंट, जिसमें अंतर्निहित long-poll + webhook सहायक, मिडलवेयर, त्रुटि प्रबंधन, और रेट लिमिटर शामिल हैं।
- fetch + FormData को स्वयं तैयार करने की तुलना में अधिक स्वच्छ मीडिया सहायक; सभी Bot API मेथड्स का समर्थन करता है।
- विस्तार योग्य: कस्टम fetch के माध्यम से प्रॉक्सी समर्थन, सेशन मिडलवेयर (वैकल्पिक), टाइप-सुरक्षित कॉन्टेक्स्ट।
हमने क्या शिप किया¶
- एकल क्लाइंट पाथ: fetch-आधारित इम्प्लीमेंटेशन हटा दिया गया; grammY अब एकमात्र Telegram क्लाइंट (send + Gateway) है, और grammY throttler डिफ़ॉल्ट रूप से सक्षम है।
- Gateway:
monitorTelegramProviderएक grammYBotबनाता है, mention/allowlist गेटिंग को जोड़ता है,getFile/downloadके माध्यम से मीडिया डाउनलोड करता है, औरsendMessage/sendPhoto/sendVideo/sendAudio/sendDocumentके जरिए उत्तर भेजता है।webhookCallbackके माध्यम से long-poll या webhook का समर्थन करता है। - प्रॉक्सी: वैकल्पिक
channels.telegram.proxygrammY केclient.baseFetchके माध्यम सेundici.ProxyAgentका उपयोग करता है। - Webhook support:
webhook-set.tssetWebhook/deleteWebhookको रैप करता है;webhook.tshealth + graceful shutdown के साथ callback होस्ट करता है। जबchannels.telegram.webhookUrl+channels.telegram.webhookSecretसेट होते हैं, तो Gateway webhook मोड सक्षम करता है (अन्यथा यह long-poll करता है)। - सेशन्स: डायरेक्ट चैट्स एजेंट के मुख्य सत्र (
agent:<agentId>:<mainKey>) में समाहित हो जाती हैं; समूहagent:<agentId>:telegram:group:<chatId>का उपयोग करते हैं; उत्तर उसी चैनल पर वापस रूट होते हैं। - Config knobs:
channels.telegram.botToken,channels.telegram.dmPolicy,channels.telegram.groups(allowlist + mention डिफ़ॉल्ट्स),channels.telegram.allowFrom,channels.telegram.groupAllowFrom,channels.telegram.groupPolicy,channels.telegram.mediaMaxMb,channels.telegram.linkPreview,channels.telegram.proxy,channels.telegram.webhookSecret,channels.telegram.webhookUrl। - Draft streaming: optional
channels.telegram.streamModeusessendMessageDraftin private topic chats (Bot API 9.3+). यह चैनल ब्लॉक स्ट्रीमिंग से अलग है। - टेस्ट्स: grammY मॉक DM + समूह मेंशन गेटिंग और आउटबाउंड सेंड को कवर करते हैं; अधिक मीडिया/webhook फिक्स्चर अभी भी स्वागत योग्य हैं।
खुले प्रश्न
- यदि Bot API 429s का सामना होता है, तो वैकल्पिक grammY प्लगइन्स (throttler)।
- अधिक संरचित मीडिया टेस्ट्स जोड़ना (स्टिकर्स, वॉइस नोट्स)।
- webhook listen पोर्ट को विन्यास योग्य बनाना (वर्तमान में Gateway के माध्यम से वायर न होने पर 8787 पर स्थिर)।