R рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд▓реЗрдЦреНрджреИ (рднрд╛рдЧ реи): рдмреЛрдЯрдорд╛ рдЖрджреЗрд╢ рд╕рдорд░реНрдерди рд░ рд╕рдиреНрджреЗрд╢ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдердкреНрджреИ

╨Т рдЕрдШрд┐рд▓реНрд▓реЛ рдкреНрд░рдХрд╛рд╢рди рд╣рд╛рдореАрд▓реЗ рдмрдЯ рдХрд╕рд░реА рдмрдирд╛рдЙрдиреЗ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВ, рдХрдХреНрд╖рд╛рдХреЛ рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рд░рдореНрдн рдЧрд░реНрдпреМрдВ Bot рд░ рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрдиреЗ рд╡рд┐рдзрд┐рд╣рд░реВрд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреБрднрдпреЛред

рдпрд╕ рд▓реЗрдЦрдорд╛ рдо рдпрд╕ рд╡рд┐рд╖рдпрд▓рд╛рдИ рдЬрд╛рд░реА рд░рд╛рдЦреНрдЫреБ, рддреНрдпрд╕реИрд▓реЗ рдо рдпреЛ рд▓реЗрдЦ рдкрдвреЗ рдкрдЫрд┐ рдорд╛рддреНрд░ рдкрдвреНрди рд╕реБрд░реБ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджрдЫреБ рдкрд╣рд┐рд▓реЛ рднрд╛рдЧ.

рдпрд╕ рдкрдЯрдХ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдмреЛрдЯрд▓рд╛рдИ рдХрд╕рд░реА рдкреБрдирд░реНрдЬреАрд╡рд┐рдд рдЧрд░реНрдиреЗ рд░ рдпрд╕рдорд╛ рдХрдорд╛рдгреНрдб рд╕рдорд░реНрдерди рдердкреНрдиреЗ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗрдЫреМрдВ, рд░ рдХрдХреНрд╖рд╛рд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рд╣реБрдиреЗрдЫреМрдВред Updater.

рд▓реЗрдЦрдХреЛ рдХреНрд░рдордорд╛, рд╣рд╛рдореА рдзреЗрд░реИ рд╕рд░рд▓ рдмрдЯрд╣рд░реВ рд▓реЗрдЦреНрдиреЗрдЫреМрдВ, рдкрдЫрд┐рд▓реНрд▓реЛрд▓реЗ, рджрд┐рдЗрдПрдХреЛ рдорд┐рддрд┐ рд░ рджреЗрд╢ рдХреЛрдбрдХреЛ рдЖрдзрд╛рд░рдорд╛, рдЙрддреНрдкрд╛рджрди рдХреНрдпрд╛рд▓реЗрдиреНрдбрд░ рдЕрдиреБрд╕рд╛рд░ рджрд┐рдЗрдПрдХреЛ рджреЗрд╢рдорд╛ рдПрдХ рджрд┐рди рд╕рдкреНрддрд╛рд╣рдиреНрдд рд╡рд╛ рдХрд╛рдо рдЧрд░реНрдиреЗ рджрд┐рди рд╣реЛ рдХрд┐ рднрдиреЗрд░ рдирд┐рд░реНрдзрд╛рд░рдг рдЧрд░реНрдиреЗрдЫред рддрд░, рдкрд╣рд┐рд▓реЗ рдЬрд╕реНрддреИ, рд▓реЗрдЦрдХреЛ рдЙрджреНрджреЗрд╢реНрдп рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкреНрдпрд╛рдХреЗрдЬ рдЗрдиреНрдЯрд░рдлреЗрд╕рд╕рдБрдЧ рдкрд░рд┐рдЪрд┐рдд рдЧрд░рд╛рдЙрдиреБ рд╣реЛ telegram.bot рдЖрдлреНрдиреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиред

R рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд▓реЗрдЦреНрджреИ (рднрд╛рдЧ реи): рдмреЛрдЯрдорд╛ рдЖрджреЗрд╢ рд╕рдорд░реНрдерди рд░ рд╕рдиреНрджреЗрд╢ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдердкреНрджреИ

"R рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмрдЯ рд▓реЗрдЦреНрджреИ" рд╢реНрд░реГрдВрдЦрд▓рд╛рдХрд╛ рд╕рдмреИ рд▓реЗрдЦрд╣рд░реВ

  1. рд╣рд╛рдореА рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ рд░ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдЫреМрдВ
  2. рдмреЛрдЯрдорд╛ рдЖрджреЗрд╢ рд╕рдорд░реНрдерди рд░ рд╕рдиреНрджреЗрд╢ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдердкреНрдиреБрд╣реЛрд╕реН

рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдорд╛ рд░реБрдЪрд┐ рд░рд╛рдЦреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдореЗрд░реЛ рдорд╛ рд░реБрдЪрд┐ рд░рд╛рдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо ╨╕ YouTube рдЪреНрдпрд╛рдирд▓рд╣рд░реВред рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рд╛рдордЧреНрд░реА рдЖрд░ рднрд╛рд╖рд╛рдорд╛ рд╕рдорд░реНрдкрд┐рдд рдЫред

  1. рдЕрдкрдбреЗрдЯрд░ рд╡рд░реНрдЧ
  2. рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ - рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ
  3. рдмреЛрдЯрдорд╛ рдкрд╣рд┐рд▓реЛ рдЖрджреЗрд╢ рдердкреНрдиреБрд╣реЛрд╕реН, рдЖрджреЗрд╢ рд╣реНрдпрд╛рдиреНрдбрд▓рд░
  4. рдкрд╛рда рд╕рдиреНрджреЗрд╢ рдкреНрд░реЛрд╕реЗрд╕рд░ рд░ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ
  5. рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд╕рдБрдЧ рдЖрджреЗрд╢рд╣рд░реВ рдердкреНрджреИ
  6. рдмреНрдпрд╛рдХрдЧреНрд░рд╛рдЙрдиреНрдбрдорд╛ рдмреЛрдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН
  7. рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдЕрдкрдбреЗрдЯрд░ рд╡рд░реНрдЧ

Updater рдПрдЙрдЯрд╛ рд╡рд░реНрдЧ рд╣реЛ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫ, рд░ рд╣реБрдб рдореБрдирд┐рдХреЛ рдХрдХреНрд╖рд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ Dispetcherред рдХрдХреНрд╖рд╛ рдЕрд╕рд╛рдЗрдирдореЗрдиреНрдЯ Updater рдмреЛрдЯрдмрд╛рдЯ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБ рд╣реЛ (рдЕрдШрд┐рд▓реНрд▓реЛ рд▓реЗрдЦрдорд╛ рд╣рд╛рдореАрд▓реЗ рдпрд╕ рдЙрджреНрджреЗрд╢реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдпреМрдВ getUpdates()), рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдердк рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН Dispetcher.

рдмрд╛рд░реАрдорд╛ Dispetcher рддрдкрд╛рдИрдВрд▓реЗ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрднрдПрдХреЛ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЕрд░реНрдерд╛рддреН рд╡рд░реНрдЧ рд╡рд╕реНрддреБрд╣рд░реВ Handler.

рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ - рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ

рддрдкрд╛рдИрдВрд▓реЗ рдердкреНрдиреЗ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВрд╕рдБрдЧ Dispetcher рд╡рд┐рднрд┐рдиреНрди рдШрдЯрдирд╛рд╣рд░реВрдорд╛ рдмреЛрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВред рдорд╛ рдпреЛ рд▓реЗрдЦ рд▓реЗрдЦреНрдиреЗ рд╕рдордпрдорд╛ telegram.bot рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░рдХрд╛ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рд╣рд░реВ рдердкрд┐рдПрдХрд╛ рдЫрдиреН:

  • MessageHandler - рд╕рдиреНрджреЗрд╢ рд╣реНрдпрд╛рдиреНрдбрд▓рд░
  • CommandHandler - рдХрдорд╛рдгреНрдб рд╣реНрдпрд╛рдиреНрдбрд▓рд░
  • CallbackQueryHandler тАФ рдЗрдирд▓рд╛рдЗрдирдмрд╛рдЯ рдкрдард╛рдЗрдПрдХрд╛ рдХрд┐рдмреЛрд░реНрдбрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдбрд╛рдЯрд╛ рд╣реНрдпрд╛рдиреНрдбрд▓рд░
  • ErrorHandler - рдмрдЯрдмрд╛рдЯ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдЕрдиреБрд░реЛрдз рдЧрд░реНрджрд╛ рддреНрд░реБрдЯрд┐ рд╣реНрдпрд╛рдиреНрдбрд▓рд░

рдмреЛрдЯрдорд╛ рдкрд╣рд┐рд▓реЛ рдЖрджреЗрд╢ рдердкреНрдиреБрд╣реЛрд╕реН, рдЖрджреЗрд╢ рд╣реНрдпрд╛рдиреНрдбрд▓рд░

рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рдХрд╣рд┐рд▓реНрдпреИ рдмрдЯрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрднрдПрдХреЛ рдЫреИрди рд░ рдХрдорд╛рдгреНрдб рдХреЗ рд╣реЛ рдерд╛рд╣рд╛ рдЫреИрди рднрдиреЗ, рдмреЛрдЯрд▓рд╛рдИ рдЖрджреЗрд╢рд╣рд░реВ рдлрд░реНрд╡рд╛рд░реНрдб рд╕реНрд▓реНрдпрд╛рд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрдард╛рдЙрдиреБрдкрд░реНрдЫред / рдЙрдкрд╕рд░реНрдЧрдХреЛ рд░реВрдкрдорд╛ред

рд╣рд╛рдореА рд╕рд╛рдзрд╛рд░рдг рдЖрджреЗрд╢рд╣рд░реВрдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫреМрдВ, рдЕрд░реНрдерд╛рддреНред рд╣рд╛рдореНрд░реЛ рдмреЛрдЯрд▓рд╛рдИ рдЖрджреЗрд╢рдорд╛ рдирдорд╕реНрдХрд╛рд░ рднрдиреНрди рд╕рд┐рдХреМрдВ /hi.

рдХреЛрдб рез: рдмреЛрдЯрд▓рд╛рдИ рдирдорд╕реНрддреЗ рднрдиреНрди рд╕рд┐рдХрд╛рдЙрдБрджреИ

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' рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реЗрдкрдЫрд┐ рддрдкрд╛рдИрд▓реЗ рдмрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрднрдПрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯреЛрдХрдирд╕рдБрдЧ BotFather (рдореИрд▓реЗ рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реЗрдВ рдкрд╣рд┐рд▓реЛ рд▓реЗрдЦ).

рд╡рд┐рдзрд┐ start_polling() рд╡рд░реНрдЧ Updater, рдЬреБрди рдХреЛрдбрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, рдмреЛрдЯрдмрд╛рдЯ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреЗ рд░ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рдЕрдирдиреНрдд рд▓реВрдк рд╕реБрд░реБ рд╣реБрдиреНрдЫред

рдЕрдм рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдЦреЛрд▓реМрдВ рд░ рд╣рд╛рдореНрд░реЛ рдмреЛрдЯрдорд╛ рдкрд╣рд┐рд▓реЛ рдЖрджреЗрд╢ рд▓реЗрдЦреМрдВ /hi.

R рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд▓реЗрдЦреНрджреИ (рднрд╛рдЧ реи): рдмреЛрдЯрдорд╛ рдЖрджреЗрд╢ рд╕рдорд░реНрдерди рд░ рд╕рдиреНрджреЗрд╢ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдердкреНрджреИ

рдЕрдм рд╣рд╛рдореНрд░реЛ рдмреЛрдЯрд▓реЗ рдЖрджреЗрд╢ рдмреБрдЭреНрдЫ /hi, рд░ рд╣рд╛рдореАрд▓рд╛рдИ рдХрд╕рд░реА рдЕрднрд┐рд╡рд╛рджрди рдЧрд░реНрдиреЗ рдерд╛рд╣рд╛ рдЫред

рдпреЛрдЬрдирд╛рдмрджреНрдз рд░реВрдкрдорд╛, рдпрд╕реНрддреЛ рд╕рд╛рдзрд╛рд░рдг рдмреЛрдЯ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЪрд┐рддреНрд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

R рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд▓реЗрдЦреНрджреИ (рднрд╛рдЧ реи): рдмреЛрдЯрдорд╛ рдЖрджреЗрд╢ рд╕рдорд░реНрдерди рд░ рд╕рдиреНрджреЗрд╢ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдердкреНрджреИ

  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, рддрд░ рдЬрдм рдкрдирд┐ рдмреЛрдЯрд▓рд╛рдИ рдкрдард╛рдЗрдПрдХреЛ рд╕рдиреНрджреЗрд╢рдорд╛ рдирд┐рдореНрди рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рд╢рдмреНрдж рджреЗрдЦрд╛ рдкрд░реНрджрдЫ: рдирдорд╕реНрдХрд╛рд░, рдирдорд╕реНрдХрд╛рд░, рд╕рд▓рд╛рдо, рд╣рд╛рдИ, рдмреЛрдиреНрдЬрд░ред

рдЕрд╣рд┐рд▓реЗрдХреЛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА рдХреБрдиреИ рдирдпрд╛рдБ рд╡рд┐рдзрд┐рд╣рд░реВ рд▓реЗрдЦреНрдиреЗ рдЫреИрдиреМрдВ, рдХрд┐рдирднрдиреЗ ... рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдПрдЙрдЯрд╛ рд╡рд┐рдзрд┐ рдЫ рдЬрд╕рджреНрд╡рд╛рд░рд╛ рдмреЛрдЯрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЕрднрд┐рд╡рд╛рджрди рдЧрд░реНрдЫред рд╣рд╛рдореАрд▓реЗ рдЧрд░реНрдиреБрдкрд░реНрдиреЗ рднрдиреЗрдХреЛ рдЖрд╡рд╢реНрдпрдХ рдлрд┐рд▓реНрдЯрд░ рд░ рд╕рдиреНрджреЗрд╢ рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБ рд╣реЛред

рдХреЛрдб реи: рдкрд╛рда рд╕рдиреНрджреЗрд╢ рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рд░ рдлрд┐рд▓реНрдЯрд░ рдердкреНрдиреБрд╣реЛрд╕реН

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' рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реЗрдкрдЫрд┐ рддрдкрд╛рдИрд▓реЗ рдмрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрднрдПрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯреЛрдХрдирд╕рдБрдЧ BotFather (рдореИрд▓реЗ рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реЗрдВ рдкрд╣рд┐рд▓реЛ рд▓реЗрдЦ).

рдЕрдм рдкрд╣рд┐рд▓реЗ рд╕реВрдЪреАрдмрджреНрдз рдЕрднрд┐рд╡рд╛рджрди рд╢рдмреНрджрд╣рд░реВ рд╕рд╣рд┐рдд рдмреЛрдЯрд▓рд╛рдИ рдзреЗрд░реИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реМрдВ:
R рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд▓реЗрдЦреНрджреИ (рднрд╛рдЧ реи): рдмреЛрдЯрдорд╛ рдЖрджреЗрд╢ рд╕рдорд░реНрдерди рд░ рд╕рдиреНрджреЗрд╢ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдердкреНрджреИ

рддреНрдпрд╕реЛрднрдП, рд╕рдмреИрднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореАрд▓реЗ рдмреЛрдЯрд▓рд╛рдИ рдирдорд╕реНрддреЗ рднрдиреНрди рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рдЕрднрд┐рд╡рд╛рджрдирдХреЛ рдЬрд╡рд╛рдл рджрд┐рди рд╕рд┐рдХрд╛рдпреМрдВред рд╣рд╛рдореАрд▓реЗ рддрд░реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рдЧрд░реНрдпреМрдВ рдЬрд╡рд╛рдл_to_message_id, рдЬреБрди рд╡рд┐рдзрд┐рдорд╛ рдЙрдкрд▓рдмреНрдз рдЫ sendMessage(), рдЬрд╕рдорд╛ рддрдкрд╛рдИрд▓реЗ рдЬрд╡рд╛рдл рджрд┐рди рдЪрд╛рд╣рдиреБ рднрдПрдХреЛ рд╕рдиреНрджреЗрд╢рдХреЛ рдЖрдИрдбреА рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рддрдкрд╛рдИрд▓реЗ рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рд╕рдиреНрджреЗрд╢ рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ: update$message$message_id.

рддрд░ рд╣рд╛рдореАрд▓реЗ рдЧрд░реЗрдХреЛ рдореБрдЦреНрдп рдХреБрд░рд╛ рднрдиреЗрдХреЛ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдмреЛрдЯрдорд╛ рдлрд┐рд▓реНрдЯрд░ рдердкреНрдиреБ рдерд┐рдпреЛ BaseFilter():

# ╤Б╨╛╨╖╨┤╨░╤С╨╝ ╤Д╨╕╨╗╤М╤В╤А╤Л
MessageFilters$hi <- BaseFilter( 

  # ╨░╨╜╨╛╨╜╨╕╨╝╨╜╨░╤П ╤Д╨╕╨╗╤М╤В╤А╤Г╤О╤Й╨░╤П ╤Д╤Г╨╜╨║╤Ж╨╕╤П
  function(message) {

    # ╨┐╤А╨╛╨▓╨╡╤А╤П╨╡╨╝, ╨▓╤Б╤В╤А╨╡╤З╨░╨╡╤В╤Б╤П ╨╗╨╕ ╨▓ ╤В╨╡╨║╤Б╤В╨╡ ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╤П ╤Б╨╗╨╛╨▓╨░ ╨┐╤А╨╕╨▓╨╡╤В╤Б╤В╨▓╨╕╤П
    grepl(x           = message$text, 
          pattern     = '╨┐╤А╨╕╨▓╨╡╤В|╨╖╨┤╤А╨░╨▓╤Б╤В╨▓╤Г╨╣|╤Б╨░╨╗╤О╤В|╤Е╨░╨╣|╨▒╨╛╨╜╨╢╤Г╤А',
          ignore.case = TRUE)
  }

)

рддрдкрд╛рдИрдВрд▓реЗ рдпрд╛рдж рдЧрд░реНрдиреБрднрдПрдХреЛ рд╣реБрди рд╕рдХреНрдЫ, рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рд╡рд╕реНрддреБрдорд╛ рдердкреНрди рдЖрд╡рд╢реНрдпрдХ рдЫ MessageFilters, рдЬреБрди рдкреНрд░рд╛рд░рдореНрднрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рддрдпрд╛рд░-рдирд┐рд░реНрдорд┐рдд рдлрд┐рд▓реНрдЯрд░рд╣рд░реВрдХреЛ рд╕рд╛рдиреЛ рд╕реЗрдЯ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рд╣рд╛рдореНрд░реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛, рд╡рд╕реНрддреБрдорд╛ MessageFilters рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рддрддреНрд╡ рдердкреНрдиреБрднрдпреЛ 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 рд░ рд╡рд╕реНрддреБ MessageFilters рддреНрдпрд╣рд╛рдБ рдкрд╣рд┐рд▓реЗ рдиреИ рдирд┐рд░реНрдорд┐рдд рдлрд┐рд▓реНрдЯрд░рд╣рд░реВрдХреЛ рд╕реЗрдЯ рдЫ рдЬреБрди рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:

  • рд╕рдмреИ - рд╕рдмреИ рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рдкрд╛рда - рдкрд╛рда рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рдЖрджреЗрд╢ - рдЖрджреЗрд╢, рдЕрд░реНрдерд╛рддреН рдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреЗ рд╕рдиреНрджреЗрд╢рд╣рд░реВ /
  • рдЬрд╡рд╛рдл - рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЬреБрди рдЕрд░реНрдХреЛ рд╕рдиреНрджреЗрд╢рдХреЛ рдЬрд╡рд╛рдл рд╣реЛ
  • рдЕрдбрд┐рдпреЛ - рдЕрдбрд┐рдпреЛ рдлрд╛рдЗрд▓ рд╕рдорд╛рд╡реЗрд╢ рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рдХрд╛рдЧрдЬрд╛рдд - рдкрдард╛рдЗрдПрдХреЛ рдХрд╛рдЧрдЬрд╛рддрдХреЛ рд╕рд╛рде рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рддрд╕реНрдмрд┐рд░ - рдкрдард╛рдЗрдПрдХреЛ рдЫрд╡рд┐рд╣рд░реВ рд╕рд╣рд┐рдд рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рд╕реНрдЯрд┐рдХрд░ - рдкрдард╛рдЗрдПрдХреЛ рд╕реНрдЯрд┐рдХрд░рдХреЛ рд╕рд╛рде рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рднрд┐рдбрд┐рдпреЛ - рднрд┐рдбрд┐рдпреЛ рд╕рд╣рд┐рдд рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рдЖрд╡рд╛рдЬ - рдЖрд╡рд╛рдЬ рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рд╕рдореНрдкрд░реНрдХ - рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╕рд╛рдордЧреНрд░реА рд╕рдорд╛рд╡реЗрд╢ рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рд╕реНрдерд╛рди - рднреМрдЧреЛрд▓рд┐рдХ рд╕реНрдерд╛рди рд╕рдВрдЧ рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рд╕реНрдерд▓ - рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░рд┐рдПрдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ
  • рдЦреЗрд▓ - рдЦреЗрд▓

рдпрджрд┐ рддрдкрд╛рдЗрдБ рдПрдХ рд╣реНрдпрд╛рдиреНрдбрд▓рд░рдорд╛ рдХреЗрд╣рд┐ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рд╕рдВрдпреЛрдЬрди рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ рдХреЗрд╡рд▓ рдЪрд┐рдиреНрд╣ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН | - рддрд╛рд░реНрдХрд┐рдХ рд░реВрдкрдорд╛ рд╡рд╛, рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ & рддрд╛рд░реНрдХрд┐рдХ рд░реВрдкрдорд╛ ╨Шред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдпрджрд┐ рддрдкрд╛рдЗрдБ рдмреЛрдЯрд▓реЗ рднрд┐рдбрд┐рдпреЛ, рдЫрд╡рд┐ рд╡рд╛ рдХрд╛рдЧрдЬрд╛рдд рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрд╛ рдЙрд╣реА рд╡рд┐рдзрд┐ рдХрд▓ рдЧрд░реНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рд╕рдиреНрджреЗрд╢ рд╣реНрдпрд╛рдиреНрдбрд▓рд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

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

рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд╕рдБрдЧ рдЖрджреЗрд╢рд╣рд░реВ рдердкреНрджреИ

рд╣рд╛рдореАрд▓рд╛рдИ рдкрд╣рд┐рд▓реЗ рдиреИ рдерд╛рд╣рд╛ рдЫ рдХрдорд╛рдгреНрдбрд╣рд░реВ рдХреЗ рд╣реБрдиреН, рдХрд╕рд░реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ, рд░ рдХрд╕рд░реА рдмрдЯрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдПрдХреЛ рдЖрджреЗрд╢ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдЬрдмрд░рдЬрд╕реНрддреА рдЧрд░реНрдиреЗред рддрд░ рдХреЗрд╣рд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдЖрджреЗрд╢ рдирд╛рдо рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рд╛рдореАрд▓реЗ рдпрд╕рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рдХреЗрд╣рд┐ рдбрд╛рдЯрд╛ рдкрд╛рд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рддрд▓ рджрд┐рдЗрдПрдХреЛ рдорд┐рддрд┐ рд░ рджреЗрд╢ рджрд┐рдПрд░, рдЙрддреНрдкрд╛рджрди рдХреНрдпрд╛рд▓реЗрдиреНрдбрд░рдмрд╛рдЯ рджрд┐рдирдХреЛ рдкреНрд░рдХрд╛рд░ рдлрд┐рд░реНрддрд╛ рдЧрд░реНрдиреЗ рдмреЛрдЯрдХреЛ рдЙрджрд╛рд╣рд░рдг рд╣реЛред

рддрд▓рдХреЛ рдмреЛрдЯрд▓реЗ рдЙрддреНрдкрд╛рджрди рдХреНрдпрд╛рд▓реЗрдиреНрдбрд░ API рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ isdayoff.ru.

рдХреЛрдб рей: рдорд┐рддрд┐ рд░ рджреЗрд╢ рдЕрдиреБрд╕рд╛рд░ рд░рд┐рдкреЛрд░реНрдЯ рдЧрд░реНрдиреЗ рдмреЛрдЯ

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' рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реЗрдкрдЫрд┐ рддрдкрд╛рдИрд▓реЗ рдмрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрднрдПрдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЯреЛрдХрдирд╕рдБрдЧ BotFather (рдореИрд▓реЗ рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реЗрдВ рдкрд╣рд┐рд▓реЛ рд▓реЗрдЦ).

рд╣рд╛рдореАрд▓реЗ рдПрдЙрдЯрд╛ рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдпреМрдВ рдЬрд╕рдХреЛ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░рдорд╛ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рд╡рд┐рдзрд┐ рдЫ check_date, рдпреЛ рд╡рд┐рдзрд┐ рдПрдЙрдЯреИ рдирд╛рдо рдХреЛ рдЖрджреЗрд╢ рджреНрд╡рд╛рд░рд╛ рднрдирд┐рдиреНрдЫред

рддрд░, рдЖрджреЗрд╢ рдирд╛рдордХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпреЛ рд╡рд┐рдзрд┐рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рджреБрдИ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ, рджреЗрд╢ рдХреЛрдб рд░ рдорд┐рддрд┐ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рддреНрдпрд╕рдкрдЫрд┐, рдмреЛрдЯрд▓реЗ рддреЛрдХрд┐рдПрдХреЛ рджреЗрд╢рдорд╛ рджрд┐рдЗрдПрдХреЛ рджрд┐рди рд╕рдкреНрддрд╛рд╣рдиреНрдд, рдЫреЛрдЯреЛ рджрд┐рди, рд╡рд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЙрддреНрдкрд╛рджрди рдХреНрдпрд╛рд▓реЗрдиреНрдбрд░ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдЧрд░реНрдиреЗ рджрд┐рди рд╣реЛ рдХрд┐ рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрдЫред

рдЖрджреЗрд╢рдХреЛ рд╕рд╛рдердорд╛ рд╣рд╛рдореАрд▓реЗ рдердк рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд╡рд┐рдзрд┐рдХреЛ рд▓рд╛рдЧрд┐, рддрд░реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН pass_args = TRUE рдХрд╛рд░реНрдпрдорд╛ CommandHandler(), рд░ рд╡рд┐рдзрд┐ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛, рдЖрд╡рд╢реНрдпрдХ рддрд░реНрдХрд╣рд░реВрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдмреЛрдЯ, рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН - рдЖрд░реНрдЧред рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рд╡рд┐рдзрд┐рд▓реЗ рдЖрджреЗрд╢рдХреЛ рдирд╛рдо рдкрдЫрд┐ рдмреЛрдЯрдорд╛ рдкрд╛рд╕ рдЧрд░реНрдиреЗ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрдиреЗрдЫред рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╕реНрдкреЗрд╕рджреНрд╡рд╛рд░рд╛ рдЫреБрдЯреНрдпрд╛рдЗрдиреБрдкрд░реНрдЫ; рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкрд╛рда рднреЗрдХреНрдЯрд░рдХреЛ рд░реВрдкрдорд╛ рд╡рд┐рдзрд┐рдорд╛ рдкрдард╛рдЗрдиреЗрдЫред

рд╣рд╛рдореНрд░реЛ рдмреЛрдЯ рд▓рдиреНрдЪ рд░ рдкрд░реАрдХреНрд╖рдг рдЧрд░реМрдВред

R рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд▓реЗрдЦреНрджреИ (рднрд╛рдЧ реи): рдмреЛрдЯрдорд╛ рдЖрджреЗрд╢ рд╕рдорд░реНрдерди рд░ рд╕рдиреНрджреЗрд╢ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдердкреНрджреИ

рдмреНрдпрд╛рдХрдЧреНрд░рд╛рдЙрдиреНрдбрдорд╛ рдмреЛрдЯ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН

рд╣рд╛рдореАрд▓реЗ рдкреВрд░рд╛ рдЧрд░реНрдиреБ рдкрд░реНрдиреЗ рдЕрдиреНрддрд┐рдо рдЪрд░рдг рднрдиреЗрдХреЛ рдкреГрд╖реНрдарднреВрдорд┐рдорд╛ рдмреЛрдЯ рд╕реБрд░реБ рдЧрд░реНрдиреБ рд╣реЛред

рдпреЛ рдЧрд░реНрди, рддрд▓ рд╡рд░реНрдгрди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

  1. рдмрдЯ рдХреЛрдбрд▓рд╛рдИ рдПрдХреНрд╕рдЯреЗрдиреНрд╕рди R рдХреЛ рд╕рд╛рде рдлрд╛рдЗрд▓рдорд╛ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред RStudio рдорд╛ рдХрд╛рдо рдЧрд░реНрджрд╛, рдпреЛ рдореЗрдиреБ рдорд╛рд░реНрдлрдд рдЧрд░рд┐рдиреНрдЫред рдлрд╛рдЗрд▓, рдЯреЛрд▓реА рдпрд╕рд░реА рд░рд╛рдЦ ....
  2. рдмрд┐рди рдлреЛрд▓реНрдбрд░рдорд╛ рдкрде рдердкреНрдиреБрд╣реЛрд╕реН, рдЬреБрди рдлреЛрд▓реНрдбрд░рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдЫ рдЬрд╕рдорд╛ рддрдкрд╛рдИрдВрд▓реЗ R рднрд╛рд╖рд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрднрдпреЛ, рдкрде рдЪрд░рдорд╛, рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдпрд╣рд╛рдБ.
  3. рдПрдЙрдЯрд╛ рдирд┐рдпрдорд┐рдд рдкрд╛рда рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдЬрд╕рдорд╛ рез рд░реЗрдЦрд╛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН: R CMD BATCH C:UsersAlseyDocumentsmy_bot.R... рд╕рдЯреНрдЯрд╛ C: UsersAlseyDocumentsmy_bot.R рдЖрдлреНрдиреЛ рдмреЛрдЯ рд▓рд┐рдкрд┐ рдХреЛ рдмрд╛рдЯреЛ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред рдПрдХреИ рд╕рдордпрдорд╛, рдпреЛ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ рдХрд┐ рддреНрдпрд╣рд╛рдБ рдмрд╛рдЯреЛрдорд╛ рдХреБрдиреИ рд╕рд┐рд░рд┐рд▓рд┐рдХ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ рд╡рд╛ рдЦрд╛рд▓реА рдард╛рдЙрдБрд╣рд░реВ рдЫреИрдирдиреН, рдХрд┐рдирднрдиреЗ рдмреЛрдЯ рдЪрд▓рд╛рдЙрдБрджрд╛ рдпрд╕рд▓реЗ рд╕рдорд╕реНрдпрд╛ рдирд┐рдореНрддреНрдпрд╛рдЙрди рд╕рдХреНрдЫред рдпрд╕рд▓рд╛рдИ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рдпрд╕рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░рд╕рдБрдЧ рдмрджрд▓реНрдиреБрд╣реЛрд╕реН txt рдорд╛ bat.
  4. рд╡рд┐рдиреНрдбреЛрдЬ рдЯрд╛рд╕реНрдХ рд╢реЗрдбреНрдпреБрд▓рд░ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН, рддреНрдпрд╣рд╛рдБ рдпреЛ рдЧрд░реНрди рдзреЗрд░реИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдХреБрдиреИ рдкрдирд┐ рдлреЛрд▓реНрдбрд░ рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН рд░ рдареЗрдЧрд╛рдирд╛ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред %windir%system32taskschd.msc /sред рдЕрдиреНрдп рдкреНрд░рдХреНрд╖реЗрдкрдг рд╡рд┐рдзрд┐рд╣рд░реВ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ рдпрд╣рд╛рдБ.
  5. рдЕрдиреБрд╕реВрдЪрдХрдХреЛ рд╢реАрд░реНрд╖ рджрд╛рдпрд╛рдБ рдореЗрдиреБрдорд╛, "рдХрд╛рд░реНрдп рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН..." рдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  6. "рд╕рд╛рдорд╛рдиреНрдп" рдЯреНрдпрд╛рдмрдорд╛, рдЖрдлреНрдиреЛ рдХрд╛рд░реНрдпрд▓рд╛рдИ рдЖрдлреВ рдЕрдиреБрдХреВрд▓ рдирд╛рдо рджрд┐рдиреБрд╣реЛрд╕реН, рд░ рд╕реНрд╡рд┐рдЪрд▓рд╛рдИ "рд╕рдмреИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН" рд╕реНрдерд┐рддрд┐рдорд╛ рд╕реНрд╡рд┐рдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  7. "рдХрд╛рд░реНрдп" рдЯреНрдпрд╛рдмрдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН, "рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН" рдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реНред "рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд╛ рд▓рд┐рдкрд┐" рдлрд┐рд▓реНрдбрдорд╛, "рдмреНрд░рд╛рдЙрдЬ" рдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рджреЛрд╕реНрд░реЛ рдЪрд░рдгрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реН bat рдлрд╛рдЗрд▓ рд░ рдареАрдХ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  8. рдареАрдХ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛, рдЖрдлреНрдиреЛ рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рдЦрд╛рддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  9. рд╢реЗрдбреНрдпреВрд▓рд░рдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдХрд╛рд░реНрдп рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреБрд╣реЛрд╕реН, рдпрд╕рд▓рд╛рдИ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рддрд▓реНрд▓реЛ рджрд╛рдпрд╛рдБ рдХреБрдирд╛рдорд╛ рд░рд╣реЗрдХреЛ "рд░рди" рдмрдЯрдирдорд╛ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╣рд╛рдореНрд░реЛ рдмрдЯ рдкреГрд╖реНрдарднреВрдорд┐рдорд╛ рдЪрд▓реНрдЫ рд░ рддрдкрд╛рдИрдВрд▓реЗ рдХрд╛рд░реНрдп рдирд░реЛрдХреНрджрд╛рд╕рдореНрдо рд╡рд╛ рддрдкрд╛рдИрдВрдХреЛ рдкреАрд╕реА рд╡рд╛ рд╕рд░реНрднрд░ рдмрдиреНрдж рдирдЧрд░реЗрд╕рдореНрдо рдХрд╛рдо рдЧрд░реНрдиреЗрдЫ рдЬрд╕рдорд╛ рдпреЛ рд╕реБрд░реВ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдпрд╕ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореАрд▓реЗ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрди рдорд╛рддреНрд░ рдирднрдИ рдЖрдЧрдорди рд╕рдиреНрджреЗрд╢рд╣рд░реВ рд░ рдЖрджреЗрд╢рд╣рд░реВрд▓рд╛рдИ рдкрдирд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд┐рди рд╕рдХреНрдиреЗ рдкреВрд░реНрдг рдмрдЯ рдХрд╕рд░реА рд▓реЗрдЦреНрдиреЗ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВред рддрдкрд╛рдИрдХреЛ рдзреЗрд░реИрдЬрд╕реЛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рд╛рдкреНрдд рдЬреНрдЮрд╛рди рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░реНрдпрд╛рдкреНрдд рдЫред

рдЕрд░реНрдХреЛ рд▓реЗрдЦрд▓реЗ рдердк рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдХрд╛рдордХреЛ рд▓рд╛рдЧрд┐ рдмреЛрдЯрдорд╛ рдХрд┐рдмреЛрд░реНрдб рдердкреНрдиреЗ рдмрд╛рд░реЗ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫред

рдореЗрд░реЛ рд╕рджрд╕реНрдпрддрд╛ рд▓рд┐рдиреБрд╣реЛрд╕реН рдЯреЗрд▓реАрдЧреНрд░рд╛рдо ╨╕ YouTube рдЪреНрдпрд╛рдирд▓рд╣рд░реВред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди