Σύνταξη bot τηλεγραφήματος σε R (μέρος 2): Προσθήκη υποστήριξης εντολών και φίλτρων μηνυμάτων στο bot

В προηγούμενη δημοσίευση καταλάβαμε πώς να δημιουργήσουμε ένα bot, αρχικοποιήσαμε μια παρουσία της κλάσης Bot και εξοικειώθηκε με τις μεθόδους αποστολής μηνυμάτων χρησιμοποιώντας το.

Σε αυτό το άρθρο συνεχίζω αυτό το θέμα, γι' αυτό συνιστώ να αρχίσετε να διαβάζετε αυτό το άρθρο μόνο μετά την ανάγνωση το πρώτο μέρος.

Αυτή τη φορά θα καταλάβουμε πώς να αναβιώσουμε το bot μας και να προσθέσουμε υποστήριξη εντολών σε αυτό και επίσης να εξοικειωθούμε με την τάξη Updater.

Κατά τη διάρκεια του άρθρου, θα γράψουμε πολλά απλά ρομπότ, τα οποία, με βάση μια δεδομένη ημερομηνία και κωδικό χώρας, θα καθορίσουν εάν μια ημέρα σε μια δεδομένη χώρα είναι Σαββατοκύριακο ή εργάσιμη ημέρα σύμφωνα με το ημερολόγιο παραγωγής. Όμως, όπως και πριν, ο σκοπός του άρθρου είναι να σας εξοικειώσει με τη διεπαφή του πακέτου telegram.bot για να λύσετε τα δικά σας προβλήματα.

Σύνταξη bot τηλεγραφήματος σε R (μέρος 2): Προσθήκη υποστήριξης εντολών και φίλτρων μηνυμάτων στο bot

Όλα τα άρθρα από τη σειρά "Γράφοντας ένα bot τηλεγραφήματος στο R"

  1. Δημιουργούμε ένα bot και το χρησιμοποιούμε για να στείλουμε μηνύματα στο τηλεγράφημα
  2. Προσθέστε υποστήριξη εντολών και φίλτρα μηνυμάτων στο bot

περιεχόμενο

Εάν ενδιαφέρεστε για την ανάλυση δεδομένων, μπορεί να σας ενδιαφέρει το δικό μου τηλεγράφημα и YouTube καναλιών. Το μεγαλύτερο μέρος του περιεχομένου του οποίου είναι αφιερωμένο στη γλώσσα R.

  1. Κατηγορία ενημέρωσης
  2. Χειριστές - χειριστές
  3. Προσθέστε την πρώτη εντολή στο bot, πρόγραμμα χειρισμού εντολών
  4. Επεξεργαστής μηνυμάτων κειμένου και φίλτρα
  5. Προσθήκη εντολών με παραμέτρους
  6. Εκτελέστε το bot στο παρασκήνιο
  7. Συμπέρασμα

Κατηγορία ενημέρωσης

Updater είναι μια τάξη που σας διευκολύνει να αναπτύξετε ένα bot τηλεγραφήματος και χρησιμοποιεί την κατηγορία κάτω από την κουκούλα Dispetcher. Ανάθεση τάξης Updater είναι να λαμβάνετε ενημερώσεις από το bot (στο προηγούμενο άρθρο χρησιμοποιήσαμε τη μέθοδο για αυτόν τον σκοπό getUpdates()), και μεταφέρετέ τα περαιτέρω στο Dispetcher.

Με τη σειρά του Dispetcher περιέχει τους χειριστές που δημιουργήσατε, π.χ. αντικείμενα τάξης Handler.

Χειριστές - χειριστές

Με χειριστές που προσθέτετε Dispetcher αντιδράσεις bot σε διάφορα γεγονότα. Τη στιγμή της συγγραφής αυτού του άρθρου στο telegram.bot Προστέθηκαν οι ακόλουθοι τύποι χειριστών:

  • MessageHandler — Πρόγραμμα χειρισμού μηνυμάτων
  • CommandHandler — Πρόγραμμα χειρισμού εντολών
  • CallbackQueryHandler — Πρόγραμμα χειρισμού δεδομένων για πληκτρολόγια που αποστέλλονται από το Inline
  • ErrorHandler — Πρόγραμμα χειρισμού σφαλμάτων όταν ζητάτε ενημερώσεις από το bot

Προσθέστε την πρώτη εντολή στο bot, πρόγραμμα χειρισμού εντολών

Εάν δεν έχετε χρησιμοποιήσει ποτέ ρομπότ στο παρελθόν και δεν γνωρίζετε τι είναι μια εντολή, τότε οι εντολές στο ρομπότ πρέπει να αποστέλλονται χρησιμοποιώντας μια κάθετο προς τα εμπρός / ως πρόθεμα.

Θα ξεκινήσουμε με απλές εντολές, δηλ. ας μάθουμε το bot μας να λέει γεια κατά την εντολή /hi.

Κωδικός 1: Διδάσκοντας το bot να λέει γεια

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()

Εκτελέστε το παραπάνω παράδειγμα κώδικα, αφού αντικαταστήσετε το "YOUR BOT TOKEN" με το πραγματικό διακριτικό που λάβατε κατά τη δημιουργία του bot μέσω BotFather (Μίλησα για τη δημιουργία ενός bot στο πρώτο άρθρο).

Μέθοδος start_polling() κατηγορία Updater, που χρησιμοποιείται στο τέλος του κώδικα, ξεκινά έναν ατελείωτο βρόχο αιτημάτων και επεξεργασίας ενημερώσεων από το bot.

Τώρα ας ανοίξουμε το Telegram και ας γράψουμε την πρώτη εντολή στο bot μας /hi.

Σύνταξη bot τηλεγραφήματος σε R (μέρος 2): Προσθήκη υποστήριξης εντολών και φίλτρων μηνυμάτων στο bot

Τώρα το bot μας καταλαβαίνει την εντολή /hi, και ξέρει πώς να μας χαιρετήσει.

Σχηματικά, η διαδικασία κατασκευής ενός τόσο απλού bot μπορεί να απεικονιστεί ως εξής.

Σύνταξη bot τηλεγραφήματος σε R (μέρος 2): Προσθήκη υποστήριξης εντολών και φίλτρων μηνυμάτων στο bot

  1. Δημιουργήστε ένα παράδειγμα της τάξης Updater;
  2. Δημιουργούμε μεθόδους, δηλ. λειτουργίες που θα εκτελέσει το bot μας. Στο παράδειγμα κώδικα αυτή είναι μια συνάρτηση say_hello(). Οι συναρτήσεις που θα χρησιμοποιήσετε ως μέθοδοι bot πρέπει να έχουν δύο απαιτούμενα ορίσματα - του bot и ενημέρωσηκαι ένα προαιρετικό - args. Διαφωνία του bot, αυτό είναι το bot σας, με τη βοήθειά του μπορείτε να απαντάτε σε μηνύματα, να στέλνετε μηνύματα ή να χρησιμοποιείτε οποιεσδήποτε άλλες μεθόδους είναι διαθέσιμες στο bot. Διαφωνία ενημέρωση αυτό έλαβε το bot από τον χρήστη, στην πραγματικότητα, αυτό που λάβαμε στο πρώτο άρθρο χρησιμοποιώντας τη μέθοδο getUpdates(). Διαφωνία args σας επιτρέπει να επεξεργάζεστε πρόσθετα δεδομένα που αποστέλλονται από τον χρήστη μαζί με την εντολή, θα επιστρέψουμε σε αυτό το θέμα λίγο αργότερα.
  3. Δημιουργούμε χειριστές, δηλ. Συσχετίζουμε ορισμένες ενέργειες χρήστη με τις μεθόδους που δημιουργήθηκαν στο προηγούμενο βήμα. Ουσιαστικά, ένας χειριστής είναι ένα έναυσμα, ένα συμβάν που καλεί κάποια λειτουργία bot. Στο παράδειγμά μας, ένα τέτοιο έναυσμα είναι η αποστολή μιας εντολής /hi, και υλοποιείται από την ομάδα hi_hendler <- CommandHandler('hi', say_hello). Πρώτο όρισμα συνάρτησης CommandHandler() σας επιτρέπει να καθορίσετε μια εντολή, στην περίπτωσή μας hi, στο οποίο θα απαντήσει το bot. Το δεύτερο όρισμα σάς επιτρέπει να καθορίσετε τη μέθοδο bot, θα καλέσουμε τη μέθοδο say_hello, το οποίο θα εκτελεστεί εάν ο χρήστης καλέσει την εντολή που καθορίζεται στο πρώτο όρισμα.
  4. Στη συνέχεια, προσθέτουμε τον δημιουργημένο χειριστή στον διεκπεραιωτή της παρουσίας της κλάσης μας Updater. Μπορείτε να προσθέσετε χειριστές με διάφορους τρόπους· στο παραπάνω παράδειγμα, χρησιμοποίησα τον απλούστερο, χρησιμοποιώντας το σύμβολο +, δηλ. updater <- updater + hi_hendler. Το ίδιο μπορεί να γίνει χρησιμοποιώντας τη μέθοδο add_handler(), που ανήκει στην τάξη Dispatcher, μπορείτε να βρείτε αυτήν τη μέθοδο ως εξής: updater$dispatcher$add_handler();
  5. Εκκινήστε το bot χρησιμοποιώντας την εντολή start_polling().

Επεξεργαστής μηνυμάτων κειμένου και φίλτρα

Καταλάβαμε πώς να στέλνουμε εντολές στο bot, αλλά μερικές φορές χρειαζόμαστε το bot να ανταποκρίνεται όχι μόνο σε εντολές, αλλά και σε ορισμένα κανονικά μηνύματα κειμένου. Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε προγράμματα χειρισμού μηνυμάτων − Message Handler.

Κανονικός Message Handler θα απαντήσει σε όλα τα εισερχόμενα μηνύματα. Ως εκ τούτου, οι χειριστές μηνυμάτων χρησιμοποιούνται συχνά μαζί με φίλτρα. Ας μάθουμε το bot να λέει γεια όχι μόνο κατόπιν εντολής /hi, αλλά και όποτε εμφανίζεται μία από τις παρακάτω λέξεις στο μήνυμα που αποστέλλεται στο bot: γεια, γεια, χαιρετίζω, χαι, μπόντζουρ.

Προς το παρόν δεν θα γράψουμε νέες μεθόδους, γιατί... Έχουμε ήδη μια μέθοδο με την οποία το bot μας χαιρετάει. Το μόνο που χρειάζεται να κάνουμε είναι να δημιουργήσουμε το απαιτούμενο φίλτρο και τον χειριστή μηνυμάτων.

Κωδικός 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()

Εκτελέστε το παραπάνω παράδειγμα κώδικα, αφού αντικαταστήσετε το "YOUR BOT TOKEN" με το πραγματικό διακριτικό που λάβατε κατά τη δημιουργία του bot μέσω BotFather (Μίλησα για τη δημιουργία ενός bot στο πρώτο άρθρο).

Τώρα, ας προσπαθήσουμε να στείλουμε στο bot πολλά μηνύματα που περιέχουν τις λέξεις χαιρετισμού που αναφέρθηκαν προηγουμένως:
Σύνταξη bot τηλεγραφήματος σε R (μέρος 2): Προσθήκη υποστήριξης εντολών και φίλτρων μηνυμάτων στο bot

Έτσι, πρώτα απ 'όλα, μάθαμε στο bot όχι απλώς να λέει ένα γεια, αλλά να απαντά σε έναν χαιρετισμό. Το κάναμε χρησιμοποιώντας το επιχείρημα reply_to_message_id, το οποίο είναι διαθέσιμο στη μέθοδο sendMessage(), στο οποίο πρέπει να μεταφέρετε το αναγνωριστικό του μηνύματος στο οποίο θέλετε να απαντήσετε. Μπορείτε να λάβετε το αναγνωριστικό μηνύματος ως εξής: update$message$message_id.

Αλλά το κύριο πράγμα που κάναμε ήταν να προσθέσουμε ένα φίλτρο στο bot χρησιμοποιώντας τη συνάρτηση 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.

Λοιπόν, στο τέλος, προσθέτουμε στον αποστολέα τον δημιουργημένο χειριστή hi_txt_hnd.

updater <- updater + 
             hi_hendler +
             hi_txt_hnd

Όπως έγραψα παραπάνω, στη συσκευασία telegram.bot και αντικείμενο Φίλτρα μηνυμάτων Υπάρχει ήδη ένα σύνολο ενσωματωμένων φίλτρων που μπορείτε να χρησιμοποιήσετε:

  • όλα — Όλα τα μηνύματα
  • κείμενο — Μηνύματα κειμένου
  • εντολή — Εντολές, δηλ. μηνύματα που ξεκινούν με /
  • απάντηση — Μηνύματα που είναι απάντηση σε άλλο μήνυμα
  • ήχος — Μηνύματα που περιέχουν ένα αρχείο ήχου
  • έγγραφο — Μηνύματα με απεσταλμένο έγγραφο
  • φωτογραφία - Μηνύματα με απεσταλμένες εικόνες
  • αυτοκόλλητο — Μηνύματα με απεσταλμένο αυτοκόλλητο
  • βίντεο — Μηνύματα με βίντεο
  • φωνή - Φωνητικά μηνύματα
  • επαφή — Μηνύματα που περιέχουν το περιεχόμενο τηλεγραφήματος του χρήστη
  • τοποθεσία — Μηνύματα με γεωγραφική τοποθεσία
  • τόπος διεξαγωγής — Προωθήθηκαν μηνύματα
  • παιχνίδι — Παιχνίδια

Εάν θέλετε να συνδυάσετε μερικά φίλτρα σε έναν χειριστή, απλώς χρησιμοποιήστε το σύμβολο | - ως λογικό Orκαι υπογράψτε & όπως είναι λογικό И. Για παράδειγμα, εάν θέλετε το bot να καλεί την ίδια μέθοδο όταν λαμβάνει ένα βίντεο, εικόνα ή έγγραφο, χρησιμοποιήστε το ακόλουθο παράδειγμα για να δημιουργήσετε ένα πρόγραμμα χειρισμού μηνυμάτων:

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

Προσθήκη εντολών με παραμέτρους

Γνωρίζουμε ήδη τι είναι οι εντολές, πώς να τις δημιουργήσουμε και πώς να αναγκάσουμε το bot να εκτελέσει την επιθυμητή εντολή. Αλλά σε ορισμένες περιπτώσεις, εκτός από το όνομα της εντολής, πρέπει να περάσουμε και κάποια δεδομένα για να την εκτελέσουμε.

Παρακάτω είναι ένα παράδειγμα ενός ρομπότ που, δεδομένης μιας δεδομένης ημερομηνίας και χώρας, σας επιστρέφει τον τύπο ημέρας από το ημερολόγιο παραγωγής.

Το παρακάτω bot χρησιμοποιεί το API ημερολογίου παραγωγής isdayoff.ru.

Κωδικός 3: Bot που αναφέρει κατά ημερομηνία και χώρα

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()

Εκτελέστε το παραπάνω παράδειγμα κώδικα, αφού αντικαταστήσετε το "YOUR BOT TOKEN" με το πραγματικό διακριτικό που λάβατε κατά τη δημιουργία του bot μέσω BotFather (Μίλησα για τη δημιουργία ενός bot στο πρώτο άρθρο).

Δημιουργήσαμε ένα bot που έχει μόνο μία μέθοδο στο οπλοστάσιό του check_date, αυτή η μέθοδος καλείται με την ομώνυμη εντολή.

Αλλά, εκτός από το όνομα της εντολής, αυτή η μέθοδος απαιτεί να εισαγάγετε δύο παραμέτρους, τον κωδικό χώρας και την ημερομηνία. Στη συνέχεια, το bot ελέγχει εάν μια δεδομένη ημέρα στην καθορισμένη χώρα είναι Σαββατοκύριακο, συντομευμένη ημέρα ή εργάσιμη ημέρα σύμφωνα με το επίσημο ημερολόγιο παραγωγής.

Προκειμένου η μέθοδος που δημιουργούμε να δέχεται επιπλέον παραμέτρους μαζί με την εντολή, χρησιμοποιήστε το όρισμα pass_args = TRUE σε λειτουργία CommandHandler(), και κατά τη δημιουργία μιας μεθόδου, εκτός από τα απαιτούμενα ορίσματα του bot, ενημέρωση δημιουργήστε ένα προαιρετικό - args. Η μέθοδος που δημιουργήθηκε με αυτόν τον τρόπο θα δεχτεί τις παραμέτρους που μεταβιβάζετε στο bot μετά το όνομα της εντολής. Οι παράμετροι πρέπει να διαχωρίζονται με ένα κενό· θα σταλούν στη μέθοδο ως διάνυσμα κειμένου.

Ας ξεκινήσουμε και ας δοκιμάσουμε το bot μας.

Σύνταξη bot τηλεγραφήματος σε R (μέρος 2): Προσθήκη υποστήριξης εντολών και φίλτρων μηνυμάτων στο bot

Εκτελέστε το bot στο παρασκήνιο

Το τελευταίο βήμα που πρέπει να ολοκληρώσουμε είναι να εκκινήσουμε το bot στο παρασκήνιο.

Για να το κάνετε αυτό, ακολουθήστε τον αλγόριθμο που περιγράφεται παρακάτω:

  1. Αποθηκεύστε τον κώδικα bot σε ένα αρχείο με την επέκταση R. Όταν εργάζεστε στο RStudio, αυτό γίνεται μέσω του μενού Αρχεία, ομάδα Αποθήκευση ως….
  2. Προσθέστε τη διαδρομή στο φάκελο bin, ο οποίος με τη σειρά του βρίσκεται στο φάκελο στον οποίο εγκαταστήσατε τη γλώσσα R, στη μεταβλητή Path, οδηγίες εδώ.
  3. Δημιουργήστε ένα κανονικό αρχείο κειμένου στο οποίο γράψτε 1 γραμμή: R CMD BATCH C:UsersAlseyDocumentsmy_bot.R. Αντί C:UsersAlseyDocumentsmy_bot.R γράψτε τη διαδρομή προς το σενάριο του bot σας. Ταυτόχρονα, είναι σημαντικό να μην υπάρχουν κυριλλικοί χαρακτήρες ή κενά στην πορεία, γιατί Αυτό μπορεί να προκαλέσει προβλήματα κατά την εκτέλεση του bot. Αποθηκεύστε το και αντικαταστήστε την επέκτασή του με txt επί ρόπαλο.
  4. Ανοίξτε το Windows Task Scheduler, υπάρχουν πολλοί τρόποι για να το κάνετε αυτό, για παράδειγμα, ανοίξτε οποιονδήποτε φάκελο και εισαγάγετε τη διεύθυνση %windir%system32taskschd.msc /s. Μπορείτε να βρείτε άλλες μεθόδους εκκίνησης εδώ.
  5. Στο επάνω δεξιά μενού του χρονοπρογραμματιστή, κάντε κλικ στην επιλογή "Δημιουργία εργασίας...".
  6. Στην καρτέλα "Γενικά", δώστε στην εργασία σας ένα προσαρμοσμένο όνομα και αλλάξτε το διακόπτη στην κατάσταση "Εκτέλεση για όλους τους χρήστες".
  7. Μεταβείτε στην καρτέλα "Ενέργειες", κάντε κλικ στο "Δημιουργία". Στο πεδίο "Πρόγραμμα ή σενάριο", κάντε κλικ στο "Αναζήτηση", βρείτε αυτό που δημιουργήθηκε στο δεύτερο βήμα ρόπαλο αρχείο και κάντε κλικ στο OK.
  8. Κάντε κλικ στο OK και, εάν χρειάζεται, εισαγάγετε τον κωδικό πρόσβασης για το λογαριασμό του λειτουργικού σας συστήματος.
  9. Βρείτε την εργασία που δημιουργήθηκε στον προγραμματιστή, επιλέξτε την και κάντε κλικ στο κουμπί "Εκτέλεση" στην κάτω δεξιά γωνία.

Το bot μας εκτελείται στο παρασκήνιο και θα λειτουργεί μέχρι να σταματήσετε την εργασία ή να απενεργοποιήσετε τον υπολογιστή ή τον διακομιστή σας στον οποίο εκκινήθηκε.

Συμπέρασμα

Σε αυτό το άρθρο, καταλάβαμε πώς να γράψουμε ένα πλήρες bot που μπορεί όχι μόνο να στέλνει μηνύματα, αλλά και να απαντά σε εισερχόμενα μηνύματα και εντολές. Οι γνώσεις που αποκτήσατε είναι ήδη αρκετές για να λύσετε τα περισσότερα από τα προβλήματά σας.

Το επόμενο άρθρο θα μιλήσει για το πώς να προσθέσετε ένα πληκτρολόγιο στο bot για πιο βολική εργασία.

Εγγραφείτε στο my τηλεγράφημα и YouTube κανάλια.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο