आर में टेलीग्राम बॉट लिखना (भाग 2): बॉट में कमांड समर्थन और संदेश फ़िल्टर जोड़ना

В पिछला प्रकाशन हमने पता लगाया कि बॉट कैसे बनाया जाए, क्लास का एक उदाहरण आरंभ किया गया Bot और इसका उपयोग करके संदेश भेजने की विधियों से परिचित हो गए।

इस लेख में मैं इस विषय को जारी रखता हूं, इसलिए मेरा सुझाव है कि इस लेख को पढ़ने के बाद ही इसे पढ़ना शुरू करें पहले भाग.

इस बार हम यह पता लगाएंगे कि अपने बॉट को कैसे पुनर्जीवित किया जाए और उसमें कमांड सपोर्ट कैसे जोड़ा जाए, और क्लास से भी परिचित होंगे Updater.

लेख के दौरान, हम कई सरल बॉट लिखेंगे, बाद वाला, किसी दी गई तारीख और देश कोड के आधार पर, यह निर्धारित करेगा कि उत्पादन कैलेंडर के अनुसार किसी दिए गए देश में एक दिन सप्ताहांत या कार्य दिवस है या नहीं। लेकिन, पहले की तरह, लेख का उद्देश्य आपको पैकेज इंटरफ़ेस से परिचित कराना है telegram.bot अपनी समस्याओं को हल करने के लिए.

आर में टेलीग्राम बॉट लिखना (भाग 2): बॉट में कमांड समर्थन और संदेश फ़िल्टर जोड़ना

श्रृंखला के सभी लेख "आर में टेलीग्राम बॉट लिखना"

  1. हम एक बॉट बनाते हैं और टेलीग्राम में संदेश भेजने के लिए इसका उपयोग करते हैं
  2. बॉट में कमांड समर्थन और संदेश फ़िल्टर जोड़ें

सामग्री

यदि आप डेटा विश्लेषण में रुचि रखते हैं, तो आपको मेरी रुचि भी हो सकती है तार и यूट्यूब चैनल. अधिकांश सामग्री आर भाषा को समर्पित है।

  1. अद्यतनकर्ता वर्ग
  2. हैंडलर - हैंडलर
  3. बॉट, कमांड हैंडलर में पहला कमांड जोड़ें
  4. टेक्स्ट संदेश प्रोसेसर और फ़िल्टर
  5. पैरामीटर्स के साथ कमांड जोड़ना
  6. बॉट को पृष्ठभूमि में चलाएँ
  7. निष्कर्ष

अद्यतनकर्ता वर्ग

Updater एक ऐसा वर्ग है जो आपके लिए टेलीग्राम बॉट विकसित करना आसान बनाता है, और हुड के नीचे वर्ग का उपयोग करता है Dispetcher. क्लास असाइनमेंट Updater बॉट से अपडेट प्राप्त करना है (पिछले लेख में हमने इस उद्देश्य के लिए विधि का उपयोग किया था getUpdates()), और उन्हें आगे स्थानांतरित करें Dispetcher.

बदले में Dispetcher इसमें आपके द्वारा बनाए गए हैंडलर शामिल हैं, यानी। वर्ग वस्तुएँ Handler.

हैंडलर - हैंडलर

आपके द्वारा जोड़े गए हैंडलर के साथ Dispetcher विभिन्न घटनाओं पर बॉट की प्रतिक्रियाएँ। इस लेख को लिखते समय telegram.bot निम्नलिखित प्रकार के हैंडलर जोड़े गए हैं:

  • मैसेजहैंडलर - संदेश हैंडलर
  • कमांडहैंडलर - कमांड हैंडलर
  • CallbackQueryHandler - इनलाइन से भेजे गए कीबोर्ड के लिए डेटा हैंडलर
  • एररहैंडलर - बॉट से अपडेट का अनुरोध करते समय त्रुटि हैंडलर

बॉट, कमांड हैंडलर में पहला कमांड जोड़ें

यदि आपने पहले कभी बॉट का उपयोग नहीं किया है और नहीं जानते कि कमांड क्या है, तो बॉट को कमांड फॉरवर्ड स्लैश का उपयोग करके भेजा जाना चाहिए / उपसर्ग के रूप में.

हम सरल कमांड से शुरुआत करेंगे, यानी। आइए अपने बॉट को आदेश पर नमस्ते कहना सिखाएं /hi.

कोड 1: बॉट को नमस्ते कहना सिखाना

library(telegram.bot)

# создаём экземпляр класса Updater
updater <- Updater('ТОКЕН ВАШЕГО БОТА')

# Пишем метод для приветсвия
say_hello <- function(bot, update) {

  # Имя пользователя с которым надо поздароваться
  user_name <- update$message$from$first_name

  # Отправка приветственного сообщения
  bot$sendMessage(update$message$chat_id, 
                  text = paste0("Моё почтение, ", user_name, "!"), 
                  parse_mode = "Markdown")

}

# создаём обработчик 
hi_hendler <- CommandHandler('hi', say_hello)

# добаляем обработчик в диспетчер
updater <- updater + hi_hendler

# запускаем бота
updater$start_polling()

बॉट बनाते समय प्राप्त वास्तविक टोकन के साथ 'आपके बॉट टोकन' को बदलने के बाद, उपरोक्त कोड उदाहरण चलाएँ बोटफादर (मैंने इसमें एक बॉट बनाने के बारे में बात की थी पहला लेख).

विधि start_polling() वर्ग Updater, जिसका उपयोग कोड के अंत में किया जाता है, बॉट से अपडेट के अनुरोध और प्रसंस्करण का एक अंतहीन लूप शुरू करता है।

अब टेलीग्राम खोलें और अपने बॉट को पहला कमांड लिखें /hi.

आर में टेलीग्राम बॉट लिखना (भाग 2): बॉट में कमांड समर्थन और संदेश फ़िल्टर जोड़ना

अब हमारा बॉट कमांड को समझता है /hi, और हमें नमस्कार करना जानता है।

योजनाबद्ध रूप से, ऐसे सरल बॉट के निर्माण की प्रक्रिया को निम्नानुसार चित्रित किया जा सकता है।

आर में टेलीग्राम बॉट लिखना (भाग 2): बॉट में कमांड समर्थन और संदेश फ़िल्टर जोड़ना

  1. कक्षा का एक उदाहरण बनाएँ Updater;
  2. हम विधियाँ बनाते हैं, अर्थात्। वे कार्य जो हमारा बॉट निष्पादित करेगा। कोड उदाहरण में यह एक फ़ंक्शन है say_hello(). जिन फ़ंक्शंस का उपयोग आप बॉट विधियों के रूप में करेंगे उनमें दो आवश्यक तर्क होने चाहिए - थूथन и अद्यतन, और एक वैकल्पिक - आर्ग. तर्क थूथन, यह आपका बॉट है, इसकी मदद से आप संदेशों का उत्तर दे सकते हैं, संदेश भेज सकते हैं, या बॉट के लिए उपलब्ध किसी अन्य तरीके का उपयोग कर सकते हैं। तर्क अद्यतन यह वही है जो बॉट को उपयोगकर्ता से प्राप्त हुआ था, वास्तव में, हमें विधि का उपयोग करके पहले लेख में क्या प्राप्त हुआ था getUpdates(). तर्क आर्ग आपको कमांड के साथ उपयोगकर्ता द्वारा भेजे गए अतिरिक्त डेटा को संसाधित करने की अनुमति देता है, हम थोड़ी देर बाद इस विषय पर लौटेंगे;
  3. हम हैंडलर बनाते हैं, यानी। हम कुछ उपयोगकर्ता क्रियाओं को पिछले चरण में बनाई गई विधियों से जोड़ते हैं। अनिवार्य रूप से, एक हैंडलर एक ट्रिगर है, एक घटना जो कुछ बॉट फ़ंक्शन को कॉल करती है। हमारे उदाहरण में, ऐसा ट्रिगर एक कमांड भेज रहा है /hi, और टीम द्वारा कार्यान्वित किया जाता है hi_hendler <- CommandHandler('hi', say_hello). पहला फ़ंक्शन तर्क CommandHandler() हमारे मामले में, आपको एक कमांड निर्दिष्ट करने की अनुमति देता है hi, जिस पर बॉट प्रतिक्रिया देगा। दूसरा तर्क आपको बॉट विधि निर्दिष्ट करने की अनुमति देता है, हम विधि को कॉल करेंगे say_hello, जिसे निष्पादित किया जाएगा यदि उपयोगकर्ता पहले तर्क में निर्दिष्ट कमांड को कॉल करता है;
  4. इसके बाद, हम बनाए गए हैंडलर को अपने क्लास इंस्टेंस के डिस्पैचर में जोड़ते हैं Updater. आप कई तरीकों से हैंडलर जोड़ सकते हैं; उपरोक्त उदाहरण में, मैंने साइन का उपयोग करके सबसे सरल हैंडलर का उपयोग किया है +यानी updater <- updater + hi_hendler. विधि का उपयोग करके भी ऐसा ही किया जा सकता है add_handler(), जो वर्ग से संबंधित है Dispatcher, आप इस विधि को इस प्रकार पा सकते हैं: updater$dispatcher$add_handler();
  5. कमांड का उपयोग करके बॉट लॉन्च करें start_polling().

टेक्स्ट संदेश प्रोसेसर और फ़िल्टर

हमने यह पता लगाया कि बॉट को कमांड कैसे भेजें, लेकिन कभी-कभी हमें न केवल कमांड का जवाब देने के लिए, बल्कि कुछ नियमित टेक्स्ट संदेशों का भी जवाब देने के लिए बॉट की आवश्यकता होती है। ऐसा करने के लिए आपको संदेश हैंडलर का उपयोग करने की आवश्यकता है - संदेशहैंडलर.

साधारण संदेशहैंडलर आने वाले सभी संदेशों का बिल्कुल जवाब देगा। इसलिए, संदेश हैंडलर का उपयोग अक्सर फ़िल्टर के साथ किया जाता है। आइए बॉट को न केवल आदेश पर नमस्ते कहना सिखाएं /hi, लेकिन जब भी बॉट को भेजे गए संदेश में निम्नलिखित में से कोई एक शब्द दिखाई देता है: हैलो, हैलो, सलाम, है, बोनजौर।

फिलहाल हम कोई नई विधि नहीं लिखेंगे, क्योंकि... हमारे पास पहले से ही एक तरीका है जिसके द्वारा बॉट हमारा स्वागत करता है। हमें बस आवश्यक फ़िल्टर और संदेश हैंडलर बनाना है।

कोड 2: एक टेक्स्ट संदेश हैंडलर और फ़िल्टर जोड़ें

library(telegram.bot)

# создаём экземпляр класса Updater
updater <- Updater('ТОКЕН ВАШЕГО БОТА')

# Пишем метод для приветсвия
## команда приветвия
say_hello <- function(bot, update) {

  # Имя пользователя с которым надо поздароваться
  user_name <- update$message$from$first_name

  # Отправляем приветсвенное сообщение
  bot$sendMessage(update$message$chat_id, 
                  text = paste0("Моё почтение, ", user_name, "!"),
                  parse_mode = "Markdown",
                  reply_to_message_id = update$message$message_id)

}

# создаём фильтры
MessageFilters$hi <- BaseFilter(function(message) {

  # проверяем, встречается ли в тексте сообщения слова: привет, здравствуй, салют, хай, бонжур
  grepl(x           = message$text, 
        pattern     = 'привет|здравствуй|салют|хай|бонжур',
        ignore.case = TRUE)
  }
)

# создаём обработчик 
hi_hendler <- CommandHandler('hi', say_hello) # обработчик команды hi
hi_txt_hnd <- MessageHandler(say_hello, filters = MessageFilters$hi)

# добаляем обработчики в диспетчер
updater <- updater + 
             hi_hendler +
             hi_txt_hnd

# запускаем бота
updater$start_polling()

बॉट बनाते समय प्राप्त वास्तविक टोकन के साथ 'आपके बॉट टोकन' को बदलने के बाद, उपरोक्त कोड उदाहरण चलाएँ बोटफादर (मैंने इसमें एक बॉट बनाने के बारे में बात की थी पहला लेख).

आइए अब बॉट को पहले सूचीबद्ध शुभकामना शब्दों वाले कई संदेश भेजने का प्रयास करें:
आर में टेलीग्राम बॉट लिखना (भाग 2): बॉट में कमांड समर्थन और संदेश फ़िल्टर जोड़ना

इसलिए, सबसे पहले, हमने बॉट को सिर्फ नमस्ते कहना नहीं, बल्कि अभिवादन का जवाब देना सिखाया। हमने तर्क का उपयोग करके ऐसा किया Reply_to_message_id, जो विधि में उपलब्ध है sendMessage(), जिसमें आपको उस मैसेज की आईडी ट्रांसफर करनी होगी जिसका आप जवाब देना चाहते हैं। आप संदेश आईडी इस प्रकार प्राप्त कर सकते हैं: update$message$message_id.

लेकिन मुख्य काम जो हमने किया वह फ़ंक्शन का उपयोग करके बॉट में एक फ़िल्टर जोड़ना था BaseFilter():

# создаём фильтры
MessageFilters$hi <- BaseFilter( 

  # анонимная фильтрующая функция
  function(message) {

    # проверяем, встречается ли в тексте сообщения слова приветствия
    grepl(x           = message$text, 
          pattern     = 'привет|здравствуй|салют|хай|бонжур',
          ignore.case = TRUE)
  }

)

जैसा कि आपने देखा होगा, ऑब्जेक्ट में फ़िल्टर जोड़ने की आवश्यकता होती है संदेशफ़िल्टर, जिसमें प्रारंभ में पहले से ही तैयार फ़िल्टर का एक छोटा सेट शामिल है। हमारे उदाहरण में, वस्तु के लिए संदेशफ़िल्टर हमने एक तत्व जोड़ा hi, यह एक नया फ़िल्टर है।

समारोह में BaseFilter() आपको फ़िल्टर फ़ंक्शन पास करना होगा. मूलतः, फ़िल्टर केवल एक फ़ंक्शन है जो एक संदेश इंस्टेंस प्राप्त करता है और वापस लौटता है जब सही है या असत्य. हमारे उदाहरण में, हमने मूल फ़ंक्शन का उपयोग करते हुए एक सरल फ़ंक्शन लिखा है grepl() संदेश पाठ की जांच करता है और यह नियमित अभिव्यक्ति से मेल खाता है या नहीं привет|здравствуй|салют|хай|бонжур रिटर्न जब सही है.

आगे हम एक संदेश हैंडलर बनाते हैं hi_txt_hnd <- MessageHandler(say_hello, filters = MessageFilters$hi). पहला फ़ंक्शन तर्क MessageHandler() वह विधि है जो हैंडलर को कॉल करेगी, और दूसरा तर्क वह फ़िल्टर है जिसके द्वारा इसे कॉल किया जाएगा। हमारे मामले में, यह वह फ़िल्टर है जिसे हमने बनाया है MessageFilters$hi.

खैर, अंत में, हम डिस्पैचर में बनाए गए हैंडलर को जोड़ते हैं हाय_txt_hnd.

updater <- updater + 
             hi_hendler +
             hi_txt_hnd

जैसा कि मैंने ऊपर लिखा था, पैकेज में telegram.bot और आपत्ति संदेशफ़िल्टर पहले से ही अंतर्निहित फ़िल्टर का एक सेट मौजूद है जिसका आप उपयोग कर सकते हैं:

  • सभी - सभी संदेश
  • पाठ - पाठ संदेश
  • आदेश - आदेश, अर्थात्। वे संदेश जो प्रारंभ होते हैं /
  • उत्तर - वे संदेश जो किसी अन्य संदेश का उत्तर हैं
  • ऑडियो - ऑडियो फ़ाइल वाले संदेश
  • दस्तावेज़ - भेजे गए दस्तावेज़ वाले संदेश
  • फोटो - भेजे गए चित्रों के साथ संदेश
  • स्टिकर - भेजे गए स्टिकर वाले संदेश
  • वीडियो - वीडियो के साथ संदेश
  • आवाज - आवाज संदेश
  • संपर्क - उपयोगकर्ता की टेलीग्राम सामग्री वाले संदेश
  • स्थान - जियोलोकेशन वाले संदेश
  • स्थान - अग्रेषित संदेश
  • खेल - खेल

यदि आप कुछ फ़िल्टर को एक हैंडलर में संयोजित करना चाहते हैं तो बस चिह्न का उपयोग करें | - एक तार्किक के रूप में या, और हस्ताक्षर करें & तार्किक के रूप में И. उदाहरण के लिए, यदि आप चाहते हैं कि वीडियो, छवि या दस्तावेज़ प्राप्त होने पर बॉट उसी विधि को कॉल करे, तो संदेश हैंडलर बनाने के लिए निम्नलिखित उदाहरण का उपयोग करें:

handler <- MessageHandler(callback, 
  MessageFilters$video | MessageFilters$photo | MessageFilters$document
)

पैरामीटर्स के साथ कमांड जोड़ना

हम पहले से ही जानते हैं कि कमांड क्या हैं, उन्हें कैसे बनाना है, और वांछित कमांड को निष्पादित करने के लिए बॉट को कैसे मजबूर करना है। लेकिन कुछ मामलों में, कमांड नाम के अलावा, हमें इसे निष्पादित करने के लिए कुछ डेटा पास करने की आवश्यकता होती है।

नीचे एक बॉट का उदाहरण दिया गया है, जो किसी दी गई तारीख और देश को देखते हुए, आपको उत्पादन कैलेंडर से दिन का प्रकार लौटाता है।

नीचे दिया गया बॉट उत्पादन कैलेंडर एपीआई का उपयोग करता है isdayoff.ru.

कोड 3: बॉट जो दिनांक और देश के अनुसार रिपोर्ट करता है

library(telegram.bot)

# создаём экземпляр класса Updater
updater <- Updater('1165649194:AAFkDqIzQ6Wq5GV0YU7PmEZcv1gmWIFIB_8')

# Пишем метод для приветсвия
## команда приветвия
check_date <- function(bot, update, args) {

  # входящие данные
  day     <- args[1]  # дата
  country <- args[2]  # страна

  # проверка введённых параметров
  if ( !grepl('\d{4}-\d{2}-\d{2}', day) ) {

    # Send Custom Keyboard
    bot$sendMessage(update$message$chat_id, 
                    text = paste0(day, " - некорреткная дата, введите дату в формате ГГГГ-ММ-ДД"),
                    parse_mode = "Markdown")

  } else {
    day <- as.Date(day)
    # переводим в формат POSIXtl
    y <- format(day, "%Y")
    m <- format(day, "%m")
    d <- format(day, "%d")

  }

  # страна для проверки
  ## проверяем задана ли страна
  ## если не задана устанавливаем ru
  if ( ! country %in% c('ru', 'ua', 'by', 'kz', 'us') ) {

    # Send Custom Keyboard
    bot$sendMessage(update$message$chat_id, 
                    text = paste0(country, " - некорретктный код страны, возможнные значения: ru, by, kz, ua, us. Запрошены данные по России."),
                    parse_mode = "Markdown")

    country <- 'ru'

  }

  # запрос данных из API
  # компоновка HTTP запроса
  url <- paste0("https://isdayoff.ru/api/getdata?",
                "year=",  y, "&",
                "month=", m, "&",
                "day=",   d, "&",
                "cc=",    country, "&",
                "pre=1&",
                "covid=1")

  # получаем ответ
  res <- readLines(url)

  # интрепретация ответа
  out <- switch(res, 
                "0"   = "Рабочий день",
                "1"   = "Нерабочий день",
                "2"   = "Сокращённый рабочий день",
                "4"   = "covid-19",
                "100" = "Ошибка в дате",
                "101" = "Данные не найдены",
                "199" = "Ошибка сервиса")

  # отправляем сообщение
  bot$sendMessage(update$message$chat_id, 
                  text = paste0(day, " - ", out),
                  parse_mode = "Markdown")

}

# создаём обработчик 
date_hendler <- CommandHandler('check_date', check_date, pass_args = TRUE)

# добаляем обработчик в диспетчер
updater <- updater + date_hendler

# запускаем бота
updater$start_polling()

बॉट बनाते समय प्राप्त वास्तविक टोकन के साथ 'आपके बॉट टोकन' को बदलने के बाद, उपरोक्त कोड उदाहरण चलाएँ बोटफादर (मैंने इसमें एक बॉट बनाने के बारे में बात की थी पहला लेख).

हमने एक बॉट बनाया जिसके शस्त्रागार में केवल एक ही विधि है check_date, इस विधि को उसी नाम के कमांड द्वारा बुलाया जाता है।

लेकिन, कमांड नाम के अलावा, इस विधि के लिए आपको दो पैरामीटर, देश कोड और दिनांक दर्ज करने की आवश्यकता होती है। इसके बाद, बॉट जाँच करता है कि आधिकारिक उत्पादन कैलेंडर के अनुसार निर्दिष्ट देश में कोई दिन सप्ताहांत है, छोटा दिन है या कार्य दिवस है।

हमारे द्वारा बनाई गई विधि को कमांड के साथ अतिरिक्त पैरामीटर स्वीकार करने के लिए, तर्क का उपयोग करें pass_args = TRUE समारोह में CommandHandler(), और एक विधि बनाते समय, आवश्यक तर्कों के अतिरिक्त थूथन, अद्यतन एक वैकल्पिक बनाएं - आर्ग. इस तरह से बनाई गई विधि उन पैरामीटरों को स्वीकार करेगी जिन्हें आप कमांड नाम के बाद बॉट को पास करते हैं। पैरामीटर को एक स्थान से अलग किया जाना चाहिए; उन्हें टेक्स्ट वेक्टर के रूप में विधि में भेजा जाएगा।

आइए अपने बॉट को लॉन्च करें और उसका परीक्षण करें।

आर में टेलीग्राम बॉट लिखना (भाग 2): बॉट में कमांड समर्थन और संदेश फ़िल्टर जोड़ना

बॉट को पृष्ठभूमि में चलाएँ

अंतिम चरण जो हमें पूरा करना है वह पृष्ठभूमि में बॉट को लॉन्च करना है।

ऐसा करने के लिए, नीचे वर्णित एल्गोरिदम का पालन करें:

  1. बॉट कोड को एक्सटेंशन R वाली फ़ाइल में सेव करें। RStudio में काम करते समय, यह मेनू के माध्यम से किया जाता है पट्टिका, टीम के रूप रक्षित करें.
  2. बिन फ़ोल्डर में पथ जोड़ें, जो बदले में उस फ़ोल्डर में स्थित है जिसमें आपने पथ चर, निर्देशों में आर भाषा स्थापित की है यहां.
  3. एक नियमित टेक्स्ट फ़ाइल बनाएं जिसमें 1 पंक्ति लिखें: R CMD BATCH C:UsersAlseyDocumentsmy_bot.R. के बजाय C:UsersAlseyDocumentsmy_bot.R अपनी बॉट स्क्रिप्ट के लिए पथ लिखें। साथ ही, यह महत्वपूर्ण है कि रास्ते में कोई सिरिलिक अक्षर या रिक्त स्थान न हों, क्योंकि इससे बॉट चलाते समय समस्याएँ हो सकती हैं। इसे सहेजें, और इसके एक्सटेंशन को इसके साथ बदलें TXT पर बल्लेबाजी.
  4. विंडोज़ टास्क शेड्यूलर खोलें, ऐसा करने के कई तरीके हैं, उदाहरण के लिए, कोई भी फ़ोल्डर खोलें और पता दर्ज करें %windir%system32taskschd.msc /s. अन्य लॉन्च विधियाँ पाई जा सकती हैं यहां.
  5. शेड्यूलर के शीर्ष दाएं मेनू में, "कार्य बनाएं..." पर क्लिक करें।
  6. "सामान्य" टैब पर, अपने कार्य को एक कस्टम नाम दें, और स्विच को "सभी उपयोगकर्ताओं के लिए चलाएँ" स्थिति पर स्विच करें।
  7. "कार्रवाइयां" टैब पर जाएं, "बनाएं" पर क्लिक करें। "प्रोग्राम या स्क्रिप्ट" फ़ील्ड में, "ब्राउज़ करें" पर क्लिक करें, दूसरे चरण में बनाई गई स्क्रिप्ट ढूंढें बल्लेबाजी फ़ाइल करें और ठीक क्लिक करें.
  8. ठीक पर क्लिक करें और, यदि आवश्यक हो, तो अपने ऑपरेटिंग सिस्टम खाते के लिए पासवर्ड दर्ज करें।
  9. शेड्यूलर में बनाए गए कार्य को ढूंढें, उसे चुनें और निचले दाएं कोने में "रन" बटन पर क्लिक करें।

हमारा बॉट पृष्ठभूमि में चलता है और तब तक काम करेगा जब तक आप कार्य बंद नहीं कर देते, या अपना पीसी या सर्वर बंद नहीं कर देते जिस पर इसे लॉन्च किया गया था।

निष्कर्ष

इस लेख में, हमने यह पता लगाया कि एक पूर्ण बॉट कैसे लिखा जाए जो न केवल संदेश भेज सके, बल्कि आने वाले संदेशों और आदेशों का जवाब भी दे सके। प्राप्त ज्ञान आपकी अधिकांश समस्याओं को हल करने के लिए पहले से ही पर्याप्त है।

अगला लेख इस बारे में बात करेगा कि अधिक सुविधाजनक कार्य के लिए बॉट में कीबोर्ड कैसे जोड़ा जाए।

मेरी सदस्यता लें तार и यूट्यूब चैनल।

स्रोत: www.habr.com

एक टिप्पणी जोड़ें