आपका टेलीग्राम बॉट वर्णों की एक स्ट्रिंग है, और तीन नियम तय करते हैं कि यह क्या कर सकता है
BotFather लगभग एक मिनट में टोकन दे देता है। ज़्यादातर पहले बॉट्स को रोकने वाली चीज़ आगे का कोड नहीं है: यह ग्रुप्स में प्राइवेसी मोड है, एक चैट में प्रति सेकंड एक मैसेज, और बल्क में लगभग तीस प्रति सेकंड। ये तीनों पब्लिश्ड हैं।
Michael Chenजब भी कोई यह खोजता है, दो खोज वाक्यांश एक-दूसरे के बगल में आते हैं: टोकन और चैट आईडी। यह जोड़ी पूरी शुरुआती समस्या का लघु रूप है। लोग पहला वाक्यांश एक मिनट में समझ जाते हैं और फिर पाते हैं कि बॉट के पास बोलने की कोई जगह नहीं है।
तो यह कोई फ्रेमवर्क तुलना नहीं है। यह बताता है कि टोकन क्या है, इसे पाने के बाद बॉट को क्या रोकता है, और वे तीन प्रकाशित सीमाएँ जो आपके द्वारा बनाई जाने वाली किसी भी चीज़ का आकार तय करती हैं।
BotFather वास्तव में आपको क्या देता है
बॉट बनाने के लिए टेलीग्राम के अपने बॉट के साथ चैट खोलें, /newbot भेजें, दो सवालों के जवाब दें। टेलीग्राम का दस्तावेज़ इस लेन-देन का ठीक वैसा ही वर्णन करता है: यह नाम और यूज़रनेम पूछता है, फिर एक ऑथेंटिकेशन टोकन जनरेट करता है।
वह टोकन ही बॉट है। यह एक स्ट्रिंग है जिसमें एक संख्यात्मक उपसर्ग और कोलन के बाद एक लंबा गुप्त भाग होता है, और टेलीग्राम के अपने शब्दों में यह बॉट को अधिकृत करता है और API को अनुरोध भेजने के लिए आवश्यक है। कोई अलग पासवर्ड नहीं है, लॉगिन करने के लिए कोई खाता नहीं है, कोई दूसरा क्रेडेंशियल नहीं है। जिसके पास भी यह स्ट्रिंग है, वह बॉट पर पूरा नियंत्रण रखता है, यही वजह है कि इसे एनवायरनमेंट वेरिएबल में रखा जाना चाहिए, न कि रिपॉजिटरी, स्क्रीनशॉट या ग्रुप चैट में।
उस पल आपके पास एक काम करने वाला बॉट है जो कुछ नहीं करता, क्योंकि कोई सुन नहीं रहा है। यही सही स्थिति है और यहीं से असली काम शुरू होता है।
नियम एक: ग्रुप में, आपका बॉट जानबूझकर बहरा होता है
यह सबसे आम "मेरा बॉट खराब है" वाली शिकायत है, और यह बग नहीं बल्कि दस्तावेज़ित व्यवहार है। टेलीग्राम कहता है कि डिफ़ॉल्ट रूप से, ग्रुप में जोड़े गए सभी बॉट प्राइवेसी मोड में चलते हैं और केवल प्रासंगिक संदेश और कमांड देखते हैं।
तो ग्रुप में बैठा बॉट सामान्य बातचीत प्राप्त नहीं करता। उसे वे संदेश मिलते हैं जो उसे संबोधित करते हैं और कमांड मिलते हैं, और यही डिज़ाइन है। अगर आप एक मॉडरेशन बॉट बना रहे हैं जिसे सब कुछ पढ़ने की ज़रूरत है, तो आप BotFather के ज़रिए जानबूझकर उस सेटिंग को बदलते हैं। अगर आप एक सहायक बॉट बना रहे हैं जो सवालों के जवाब देता है, तो उसे वैसे ही छोड़ दें: डिफ़ॉल्ट प्राइवेसी-सुरक्षित है और यह आपको अप्रासंगिक अपडेट के विशाल प्रवाह से भी बचाता है।
एक और संबंधित नियम जो बॉट-से-बॉट वर्कफ़्लो बनाने वालों को फंसाता है: टेलीग्राम ने तय किया है कि बॉट किसी भी मोड में अन्य बॉट्स के संदेश बिल्कुल नहीं देखेंगे, खासकर उन्हें लूप में फंसने से रोकने के लिए। आपके अपने दो बॉट सीधे एक-दूसरे से बात नहीं कर सकते।
नियम दो: एक सेकंड में एक संदेश, प्रति चैट
टेलीग्राम का मार्गदर्शन सीधा है। एक ही चैट में, एक सेकंड में एक से अधिक संदेश भेजने से बचें। यह इसे कठोर दीवार के बजाय सलाह के रूप में कहता है, जिसका व्यवहार में मतलब है कि सीमा को सीधे मना करने के बजाय आपके बॉट को इंतज़ार कराकर लागू किया जाता है।
डिज़ाइन का नतीजा जल्दी समझ लेना चाहिए: जो बॉट किसी सवाल का जवाब छह छोटे संदेशों में देता है, वह उस यूज़र के लिए एक ही संदेश में जवाब देने वाले बॉट से छह गुना धीमा है, और यह महसूस होता है। कहानी सुनाने के बजाय एक ही जवाब लिखें।
नियम तीन: तीस प्रति सेकंड, बल्क में, और उससे जुड़ा हिसाब
बल्क नोटिफिकेशन के लिए, टेलीग्राम कहता है कि बॉट प्रति सेकंड लगभग तीस से अधिक संदेश प्रसारित नहीं कर सकते।
ब्रॉडकास्ट फीचर डिज़ाइन करने से पहले हिसाब लगा लें, क्योंकि यह बेरहम है। दस हज़ार सब्सक्राइबर तीस प्रति सेकंड पर मतलब साढ़े पाँच मिनट से थोड़ा अधिक लगातार भेजना, यह मानते हुए कि कुछ भी विफल नहीं होता और कुछ भी दोबारा नहीं भेजा जाता। एक लाख लगभग एक घंटा है। कोई भी बॉट जिसका उद्देश्य बड़ी सूची को कुछ घोषित करना है, वह वास्तव में एक क्यू है जिसके अंत में एक बॉट लगा है, और इसे एक साधारण लूप के रूप में बनाने से ब्रॉडकास्ट तब भी चलता रहेगा जब खबर पुरानी हो चुकी होगी।
व्यावहारिक जवाब सामान्य हैं: चैनल पर भेजें और सब्सक्राइबर को खींचने दें, हर यूज़र को अलग-अलग धकेलने के बजाय; या क्यू स्वीकार करें और प्रगति दिखाएं। शुरुआत में ही जानबूझकर चुनाव करें।
एक पहला वर्ज़न जो जानबूझकर छोटा है
टेलीग्राम सभी डेवलपर्स से बुनियादी कमांड के एक छोटे सेट का समर्थन करने को कहता है, और /start को सूची में सबसे ऊपर रखता है क्योंकि यह यूज़र के साथ इंटरैक्शन शुरू करता है। यह यह भी कहता है कि आपको अपने बॉट को भेजे गए सभी संदेशों का जवाब देना चाहिए। इन दो पंक्तियों के बीच आपके पास पहले वर्ज़न का एक स्पेसिफिकेशन है।
/startका जवाब दें बॉट क्या करता है, इसके बारे में एक छोटे बयान के साथ। यह पहली चीज़ है जो हर यूज़र देखता है और यह एकमात्र स्क्रीन है जिस पर आप भरोसा कर सकते हैं।- कुछ वास्तविक दोहराए जाने वाले सवालों से मिलाएं, जो अनुमानित सूची के बजाय उन संदेशों से लिए गए हों जिनका आप पहले से हाथ से जवाब दे रहे हैं।
- कभी चुप न रहें। अपरिचित इनपुट को "कोई इंसान जल्द ही जवाब देगा" वाला उत्तर मिलना चाहिए, क्योंकि जो बॉट कुछ नहीं कहता वह खराब लगता है और जो बॉट कहता है "मैं यह नहीं समझा, कोई आपसे संपर्क करेगा" वह काम करता हुआ लगता है।
उस लूप को विश्वसनीय बनाएं और उसके बाद सब कुछ — शेड्यूल्ड पोस्ट, ग्रुप मॉडरेशन, डेटाबेस लुकअप — पुनर्निर्माण के बजाय एक अतिरिक्त चीज़ है।
दो चीज़ें जो आप खरीद नहीं सकते, और एक जो खरीद सकते हैं
इस मार्केटप्लेस में क्या है और क्या नहीं, इस पर एक नोट, क्योंकि इस तरह की साइट पर यह स्पष्ट सवाल है।
खरीदने के लिए कोई बॉट नहीं है। सभी 16,735 लाइव लिस्टिंग में शीर्षक में उस शब्द की खोज करने पर तीन परिणाम मिलते हैं, और तीनों कुछ और हैं: एक कंसोल गेम जिसके नाम में "Bot" है, एक टेलीग्राम लिस्टिंग जहाँ बॉट डिलीवरी का माध्यम है, और एक फेसबुक लिस्टिंग जहाँ विक्रेता उसके ज़रिए एडमिन अधिकार सौंपता है। यहाँ कोई बॉट नहीं बेचता, क्योंकि टोकन मुफ़्त है और एक मिनट लेता है।
आपको जिस चीज़ की ज़रूरत हो सकती है वह है परीक्षण के लिए एक सामान्य टेलीग्राम खाता, ताकि आप अपना निजी नंबर उस बॉट में न जोड़ें जिसे आप अभी भी डीबग कर रहे हैं, और उसे रजिस्टर करने के लिए एक नंबर। दोनों मौजूद हैं: टेलीग्राम खाते और SMS सत्यापन नंबर। खाता शेल्फ पर वारंटी औसतन बारह घंटे चलती है, इसलिए लॉगिन का परीक्षण आते ही करें, सप्ताहांत पर नहीं।
एक विषमता जानने लायक है अगर आप कुछ सार्वजनिक-सामना करने वाला बना रहे हैं: टेलीग्राम का सत्यापन चैनलों, बॉट्स और सार्वजनिक ग्रुप्स पर लागू होता है। आपका बॉट पात्र सूची में है। जिस खाते से आप इसे चलाते हैं, वह नहीं है।
निर्माण के दौरान खुला रखने के लिए संदर्भ टेलीग्राम का अपना Bot API दस्तावेज़ है। इस पृष्ठ पर उद्धृत सब कुछ उसी से है, और यही एकमात्र स्रोत है जो अद्यतित रहता है।
