Π Bot
ΠΈ ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Ρ
Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π· Π½Π΅Π³ΠΎ.
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΠΌ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΡΠ΅ Π΄Π° ΡΠ΅ΡΠ΅ΡΠ΅ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ°ΠΌΠΎ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Ρ ΠΏΡΠΎΡΠ΅ΡΠ΅ΡΠ΅
Π’ΠΎΠ·ΠΈ ΠΏΡΡ ΡΠ΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΠΊΠ°ΠΊ Π΄Π° ΡΡΠΆΠΈΠ²ΠΈΠΌ Π½Π°ΡΠΈΡ Π±ΠΎΡ ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΊΡΠΌ Π½Π΅Π³ΠΎ, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ΠΌ Ρ ΠΊΠ»Π°ΡΠ° Updater
.
ΠΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° ΡΠ΅ Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΡΡΠΈ Π±ΠΎΡΠ°, ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π΄Π°Π΄Π΅Π½Π° Π΄Π°ΡΠ° ΠΈ ΠΊΠΎΠ΄ Π½Π° Π΄ΡΡΠΆΠ°Π²Π°ΡΠ° Π΄Π°Π»ΠΈ Π΄Π°Π΄Π΅Π½ Π΄Π΅Π½ Π² Π΄Π°Π΄Π΅Π½Π° Π΄ΡΡΠΆΠ°Π²Π° Π΅ ΡΠΈΠΊΠ΅Π½Π΄ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π½ Π΄Π΅Π½ ΡΠΏΠΎΡΠ΅Π΄ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡ ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ. ΠΠΎ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΡΠ΅Π΄ΠΈ, ΡΠ΅Π»ΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΡΠ° Π΅ Π΄Π° Π²ΠΈ Π·Π°ΠΏΠΎΠ·Π½Π°Π΅ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠ° telegram.bot
Π·Π° Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡΠ΅ ΡΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
ΠΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΠΈΠΈ ΠΎΡ ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ°ΡΠ° βΠΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌ Π±ΠΎΡ Π² Rβ
ΠΠΈΠ΅ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π±ΠΎΡ ΠΈ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π·Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² telegram ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΈ ΡΠΈΠ»ΡΡΠΈ Π·Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΊΡΠΌ Π±ΠΎΡΠ°
Π‘ΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΊΠΎ ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΎΡ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ²Π°ΡΠ΅ ΠΎΡ ΠΌΠΎΡ
ΠΠ»Π°Ρ Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π₯Π΅Π½Π΄Π»Π΅ΡΠΈ - ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΏΡΡΠ²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΡΠΌ Π±ΠΎΡΠ°, ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΡΠΎΡΠ΅ΡΠΎΡ ΠΈ ΡΠΈΠ»ΡΡΠΈ Π·Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π±ΠΎΡΠ° Π²ΡΠ² ΡΠΎΠ½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ»Π°Ρ Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡ
Updater
Π΅ ΠΊΠ»Π°Ρ, ΠΊΠΎΠΉΡΠΎ Π²ΠΈ ΡΠ»Π΅ΡΠ½ΡΠ²Π° Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΈΡΠ΅ Π±ΠΎΡ Π·Π° ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌΠ° ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΊΠ»Π°ΡΠ° ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠ°ΠΊΠ° Dispetcher
. ΠΠ°Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΊΠ»Π°ΡΠ° Updater
Π΅ Π΄Π° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ Π±ΠΎΡΠ° (Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΡΠ°ΡΠΈΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ
ΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π·Π° ΡΠ°Π·ΠΈ ΡΠ΅Π» getUpdates()
), ΠΈ Π³ΠΈ ΠΏΡΠ΅Ρ
Π²ΡΡΠ»Π΅ΡΠ΅ ΠΏΠΎ-Π½Π°ΡΠ°ΡΡΠΊ ΠΊΡΠΌ Dispetcher
.
ΠΠ° ΡΠ²ΠΎΠΉ ΡΠ΅Π΄ Dispetcher
ΡΡΠ΄ΡΡΠΆΠ° ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΡΠ΅ ΡΡΠ·Π΄Π°Π»ΠΈ, Ρ.Π΅. ΠΊΠ»Π°Ρ ΠΎΠ±Π΅ΠΊΡΠΈ Handler
.
Π₯Π΅Π½Π΄Π»Π΅ΡΠΈ - ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ
Π‘ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ, ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Dispetcher
ΡΠ΅Π°ΠΊΡΠΈΠΈ Π½Π° Π±ΠΎΡ ΠΊΡΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΡΠ±ΠΈΡΠΈΡ. ΠΡΠΌ ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ Π² telegram.bot
ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠΈΠΏΠΎΠ²Π΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ:
- MessageHandler β ΠΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ
- CommandHandler β ΠΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
- CallbackQueryHandler β ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° Π΄Π°Π½Π½ΠΈ Π·Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠΈ, ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ ΠΎΡ Inline
- ErrorHandler β ΠΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° Π³ΡΠ΅ΡΠΊΠ° ΠΏΡΠΈ ΠΈΡΠΊΠ°Π½Π΅ Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ Π±ΠΎΡΠ°
ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΏΡΡΠ²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΊΡΠΌ Π±ΠΎΡΠ°, ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ
ΠΠΊΠΎ Π½ΠΈΠΊΠΎΠ³Π° ΠΏΡΠ΅Π΄ΠΈ Π½Π΅ ΡΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ Π±ΠΎΡΠΎΠ²Π΅ ΠΈ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°, ΡΠΎΠ³Π°Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅ ΠΊΡΠΌ Π±ΠΎΡΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Ρ Ρ Π½Π°ΠΊΠ»ΠΎΠ½Π΅Π½Π° ΡΠ΅ΡΡΠ° /
ΠΊΠ°ΡΠΎ ΠΏΡΠ΅ΡΠΈΠΊΡ.
Π©Π΅ Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΏΡΠΎΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Ρ.Π΅. Π½Π΅ΠΊΠ° Π½Π°ΡΡΠΈΠΌ Π½Π°ΡΠΈΡ Π±ΠΎΡ Π΄Π° ΠΊΠ°Π·Π²Π° Π·Π΄ΡΠ°Π²Π΅ΠΉ ΠΏΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° /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()
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠ΄ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ βYOUR BOT TOKENβ Ρ ΠΈΡΡΠΈΠ½ΡΠΊΠΈΡ ΡΠΎΠΊΠ΅Π½, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΎΡΠ° ΡΡΠ΅Π· ΠΠΎΡ Π±Π°ΡΠ° (ΠΠΎΠ²ΠΎΡΠΈΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π±ΠΎΡ Π²
ΠΏΡΡΠ²Π° ΡΡΠ°ΡΠΈΡ ).
ΠΌΠ΅ΡΠΎΠ΄ start_polling()
ΠΊΠ»Π°Ρ Updater
, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΊΡΠ°Ρ Π½Π° ΠΊΠΎΠ΄Π°, ΡΡΠ°ΡΡΠΈΡΠ° Π±Π΅Π·ΠΊΡΠ°Π΅Π½ ΡΠΈΠΊΡΠ» Π½Π° ΠΈΡΠΊΠ°Π½Π΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΡ Π±ΠΎΡΠ°.
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΠΎΡΠ²ΠΎΡΠΈΠΌ Telegram ΠΈ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΡΠ²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π° Π½Π°ΡΠΈΡ Π±ΠΎΡ /hi
.
Π‘Π΅Π³Π° Π½Π°ΡΠΈΡΡ Π±ΠΎΡ ΡΠ°Π·Π±ΠΈΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° /hi
, ΠΈ Π·Π½Π°Π΅ ΠΊΠ°ΠΊ Π΄Π° Π½ΠΈ ΠΏΠΎΠ·Π΄ΡΠ°Π²ΠΈ.
Π‘Ρ Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ Π½Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠ°ΠΊΡΠ² ΠΏΡΠΎΡΡ Π±ΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΠΎΠ±ΡΠ°Π·Π΅Π½ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½.
- Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° ΠΊΠ»Π°ΡΠ°
Updater
; - ΠΠΈΠ΅ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, Ρ.Π΅. ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΠΈΡΠΎ Π½Π°ΡΠΈΡΡ Π±ΠΎΡ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°. Π ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠ΄ ΡΠΎΠ²Π° Π΅ ΡΡΠ½ΠΊΡΠΈΡ
say_hello()
. Π€ΡΠ½ΠΊΡΠΈΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΊΠ°ΡΠΎ Π±ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠΌΠ°Ρ Π΄Π²Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° - Π±ΠΎΡ ΠΈ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡΠΈ Π΅Π΄Π½ΠΎ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ - Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ. ΠΡΠ³ΡΠΌΠ΅Π½Ρ Π±ΠΎΡ, ΡΠΎΠ²Π° Π΅ Π²Π°ΡΠΈΡΡ Π±ΠΎΡ, Ρ Π½Π΅Π³ΠΎΠ²Π° ΠΏΠΎΠΌΠΎΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡΡΠ΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΡΠ΅ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ Π΄ΡΡΠ³ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΠΈ Π·Π° Π±ΠΎΡΠ°. ΠΡΠ³ΡΠΌΠ΅Π½Ρ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΎΠ²Π° Π΅, ΠΊΠΎΠ΅ΡΠΎ Π±ΠΎΡΡΡ ΠΏΠΎΠ»ΡΡΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ, Π²ΡΡΡΠ½ΠΎΡΡ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈΡ ΠΌΠ΅ Π² ΠΏΡΡΠ²Π°ΡΠ° ΡΡΠ°ΡΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°getUpdates()
. ΠΡΠ³ΡΠΌΠ΅Π½Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠ΅ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°, ΡΠ΅ ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΊΡΠΌ ΡΠ°Π·ΠΈ ΡΠ΅ΠΌΠ° ΠΌΠ°Π»ΠΊΠΎ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ; - ΠΠΈΠ΅ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ, Ρ.Π΅. Π‘Π²ΡΡΠ·Π²Π°ΠΌΠ΅ Π½ΡΠΊΠΎΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅, ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈ Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½Π°ΡΠ° ΡΡΡΠΏΠΊΠ°. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΡΡ Π΅ ΡΡΠΈΠ³Π΅Ρ, ΡΡΠ±ΠΈΡΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π° Π½ΡΠΊΠ°ΠΊΠ²Π° ΡΡΠ½ΠΊΡΠΈΡ Π½Π° Π±ΠΎΡ. Π Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΡΠ² ΡΡΠΈΠ³Π΅Ρ Π΅ ΠΈΠ·ΠΏΡΠ°ΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°
/hi
, ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° ΠΎΡ Π΅ΠΊΠΈΠΏΠ°hi_hendler <- CommandHandler('hi', say_hello)
. ΠΡΡΠ²ΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ°CommandHandler()
Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π² Π½Π°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉhi
, Π½Π° ΠΊΠΎΠ΅ΡΠΎ Π±ΠΎΡΡΡ ΡΠ΅ ΠΎΡΠ³ΠΎΠ²ΠΎΡΠΈ. ΠΡΠΎΡΠΈΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΏΠΎΡΠΎΡΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° Π±ΠΎΡΠ°, Π½ΠΈΠ΅ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ°ΠΌΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π°say_hello
, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½, Π°ΠΊΠΎ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΈΠ·Π²ΠΈΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°, ΠΏΠΎΡΠΎΡΠ΅Π½Π° Π² ΠΏΡΡΠ²ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ; - Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π΄ΠΎΠ±Π°Π²ΡΠΌΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ ΠΊΡΠΌ Π΄ΠΈΡΠΏΠ΅ΡΠ΅ΡΠ° Π½Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ° Π½Π° Π½Π°ΡΠΈΡ ΠΊΠ»Π°Ρ
Updater
. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ ΠΏΠΎ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π½Π°ΡΠΈΠ½Π°; Π² Π³ΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π·Π½Π°ΠΊΠ°+
, ΡΠΎΠ²Π° Π΅updater <- updater + hi_hendler
. Π‘ΡΡΠΎΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π°add_handler()
, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ ΠΊΡΠΌ ΠΊΠ»Π°ΡΠ°Dispatcher
, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ ΡΠΎΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠΎ ΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π°ΡΠΈΠ½:updater$dispatcher$add_handler()
; - Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π±ΠΎΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°
start_polling()
.
ΠΡΠΎΡΠ΅ΡΠΎΡ ΠΈ ΡΠΈΠ»ΡΡΠΈ Π·Π° ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ
Π Π°Π·Π±ΡΠ°Ρ ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π΄ΠΎ Π±ΠΎΡΠ°, Π½ΠΎ ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° ΠΈΠΌΠ°ΠΌΠ΅ Π½ΡΠΆΠ΄Π° Π±ΠΎΡΡΡ Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠ°ΠΌΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, Π½ΠΎ ΠΈ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ. ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ β MessageHandler.
ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ MessageHandler ΡΠ΅ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠΈΡΠΊΠΈ Π²Ρ
ΠΎΠ΄ΡΡΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π·Π°Π΅Π΄Π½ΠΎ Ρ ΡΠΈΠ»ΡΡΠΈ. ΠΠ΅ΠΊΠ° Π½Π°ΡΡΠΈΠΌ Π±ΠΎΡΠ° Π΄Π° ΠΊΠ°Π·Π²Π° Π·Π΄ΡΠ°Π²Π΅ΠΉ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° /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()
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠ΄ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ βYOUR BOT TOKENβ Ρ ΠΈΡΡΠΈΠ½ΡΠΊΠΈΡ ΡΠΎΠΊΠ΅Π½, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΎΡΠ° ΡΡΠ΅Π· ΠΠΎΡ Π±Π°ΡΠ° (ΠΠΎΠ²ΠΎΡΠΈΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π±ΠΎΡ Π²
ΠΏΡΡΠ²Π° ΡΡΠ°ΡΠΈΡ ).
Π‘Π΅Π³Π° Π½Π΅ΠΊΠ° ΡΠ΅ ΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠΈΠΌ Π½Π° Π±ΠΎΡΠ° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΠΏΠΎΠ·Π΄ΡΠ°Π²ΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π΄ΡΠΌΠΈ, ΠΈΠ·Π±ΡΠΎΠ΅Π½ΠΈ ΠΏΠΎ-ΡΠ°Π½ΠΎ:
Π ΡΠ°ΠΊΠ°, ΠΏΡΡΠ²ΠΎ, Π½Π°ΡΡΠΈΡ
ΠΌΠ΅ Π±ΠΎΡΠ° Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΠΊΠ°Π·Π²Π° Π·Π΄ΡΠ°Π²Π΅ΠΉ, Π½ΠΎ ΠΈ Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° ΠΏΠΎΠ·Π΄ΡΠ°Π². ΠΠ°ΠΏΡΠ°Π²ΠΈΡ
ΠΌΠ΅ ΡΠΎΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° reply_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()
ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ΡΠ΅ ΡΠΈΠ»ΡΡΡΠ½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ. ΠΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ ΡΠΈΠ»ΡΡΡΡΡ Π΅ ΠΏΡΠΎΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²ΡΡΡΠ° TRUE ΠΈΠ»ΠΈ FALSE. Π Π½Π°ΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Ρ
ΠΌΠ΅ ΠΏΡΠΎΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΡ grepl()
ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΈ Π΄Π°Π»ΠΈ ΡΡΠ²ΠΏΠ°Π΄Π° Ρ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΈΡ ΠΈΠ·ΡΠ°Π· ΠΏΡΠΈΠ²Π΅Ρ|Π·Π΄ΡΠ°Π²ΡΡΠ²ΡΠΉ|ΡΠ°Π»ΡΡ|Ρ
Π°ΠΉ|Π±ΠΎΠ½ΠΆΡΡ
ΡΠ΅ Π·Π°Π²ΡΡΡΠ° TRUE.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ 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 ΠΠ΅ΡΠ΅ ΠΈΠΌΠ° Π½Π°Π±ΠΎΡ ΠΎΡ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΈΠ»ΡΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅:
- Π²ΡΠΈΡΠΊΠΈ β ΠΡΠΈΡΠΊΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ
- ΡΠ΅ΠΊΡΡ β Π’Π΅ΠΊΡΡΠΎΠ²ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ
- ΠΊΠΎΠΌΠ°Π½Π΄Π° β ΠΠΎΠΌΠ°Π½Π΄ΠΈ, Ρ.Π΅. ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ Π·Π°ΠΏΠΎΡΠ²Π°Ρ Ρ
/
- ΠΎΡΠ³ΠΎΠ²ΠΎΡ β Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΠΈΡΠΎ ΡΠ° ΠΎΡΠ³ΠΎΠ²ΠΎΡ Π½Π° Π΄ΡΡΠ³ΠΎ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
- Π°ΡΠ΄ΠΈΠΎ β Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ Π°ΡΠ΄ΠΈΠΎ ΡΠ°ΠΉΠ»
- Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ β Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ
- ΡΠ½ΠΈΠΌΠΊΠ° - Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
- ΡΡΠΈΠΊΠ΅Ρ β Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ ΡΡΠΈΠΊΠ΅Ρ
- Π²ΠΈΠ΄Π΅ΠΎ β Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π²ΠΈΠ΄Π΅ΠΎ
- voice - ΠΠ»Π°ΡΠΎΠ²ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ
- ΠΊΠΎΠ½ΡΠ°ΠΊΡ β Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΡΡΠ΄ΡΡΠΆΠ°ΡΠΈ ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π»Π΅Π³ΡΠ°ΠΌΠ°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ
- ΠΌΠ΅ΡΡΠΎΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β Π‘ΡΠΎΠ±ΡΠ΅Π½ΠΈΡ Ρ Π³Π΅ΠΎΠ»ΠΎΠΊΠ°ΡΠΈΡ
- ΠΌΡΡΡΠΎ β ΠΡΠ΅ΠΏΡΠ°ΡΠ΅Π½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ
- ΠΈΠ³ΡΠ° β ΠΠ³ΡΠΈ
ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠΈΠ»ΡΡΠΈ Π² Π΅Π΄ΠΈΠ½ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ, ΠΏΡΠΎΡΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π·Π½Π°ΠΊΠ° |
- ΠΊΠ°ΡΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΠΠ, ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ΅ΡΠ΅ &
ΠΊΠ°ΡΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ Π. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π±ΠΎΡΡΡ Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ° ΡΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΠ³Π°ΡΠΎ ΠΏΠΎΠ»ΡΡΠΈ Π²ΠΈΠ΄Π΅ΠΎ, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΡΡΠ·Π΄Π°Π΄Π΅ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»Π°ΡΠΎΡ Π½Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ:
handler <- MessageHandler(callback,
MessageFilters$video | MessageFilters$photo | MessageFilters$document
)
ΠΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ
ΠΠ΅ΡΠ΅ Π·Π½Π°Π΅ΠΌ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡΠ΅, ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΡΡΠ·Π΄Π°Π΄Π΅ΠΌ ΠΈ ΠΊΠ°ΠΊ Π΄Π° ΠΏΡΠΈΠ½ΡΠ΄ΠΈΠΌ Π±ΠΎΡΠ° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈ ΠΆΠ΅Π»Π°Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°. ΠΠΎ Π² Π½ΡΠΊΠΎΠΈ ΡΠ»ΡΡΠ°ΠΈ, Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°, ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π΄Π°Π΄Π΅ΠΌ Π½ΡΠΊΠΎΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° Ρ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ.
ΠΠΎ-Π΄ΠΎΠ»Ρ Π΅ Π΄Π°Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π·Π° Π±ΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΈ Π΄Π°Π΄Π΅Π½Π° Π΄Π°ΡΠ° ΠΈ Π΄ΡΡΠΆΠ°Π²Π° Π²ΠΈ Π²ΡΡΡΠ° ΡΠΈΠΏΠ° Π΄Π΅Π½ ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡ ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ.
ΠΠΎΡΡΡ ΠΏΠΎ-Π΄ΠΎΠ»Ρ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° API Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ΠΈΡ ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ
ΠΠΎΠ΄ 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()
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΈΡ ΠΊΠΎΠ΄ ΠΏΠΎ-Π³ΠΎΡΠ΅, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ βYOUR BOT TOKENβ Ρ ΠΈΡΡΠΈΠ½ΡΠΊΠΈΡ ΡΠΎΠΊΠ΅Π½, ΠΊΠΎΠΉΡΠΎ ΡΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π±ΠΎΡΠ° ΡΡΠ΅Π· ΠΠΎΡ Π±Π°ΡΠ° (ΠΠΎΠ²ΠΎΡΠΈΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π±ΠΎΡ Π²
ΠΏΡΡΠ²Π° ΡΡΠ°ΡΠΈΡ ).
Π‘ΡΠ·Π΄Π°Π΄ΠΎΡ
ΠΌΠ΅ Π±ΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° ΡΠ°ΠΌΠΎ Π΅Π΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΠ²ΠΎΡ Π°ΡΡΠ΅Π½Π°Π» check_date
, ΡΠΎΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΎΡ Π΅Π΄Π½ΠΎΠΈΠΌΠ΅Π½Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°.
ΠΠΎ Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°, ΡΠΎΠ·ΠΈ ΠΌΠ΅ΡΠΎΠ΄ ΠΈΠ·ΠΈΡΠΊΠ²Π° Π΄Π° Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ°, ΠΊΠΎΠ΄Π° Π½Π° Π΄ΡΡΠΆΠ°Π²Π°ΡΠ° ΠΈ Π΄Π°ΡΠ°ΡΠ°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π±ΠΎΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π° Π΄Π°Π»ΠΈ Π΄Π°Π΄Π΅Π½ Π΄Π΅Π½ Π² ΠΏΠΎΡΠΎΡΠ΅Π½Π°ΡΠ° Π΄ΡΡΠΆΠ°Π²Π° Π΅ ΡΠΈΠΊΠ΅Π½Π΄, ΡΡΠΊΡΠ°ΡΠ΅Π½ Π΄Π΅Π½ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ΅Π½ Π΄Π΅Π½ ΡΠΏΠΎΡΠ΅Π΄ ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π΅Π½ ΠΊΠ°Π»Π΅Π½Π΄Π°Ρ.
ΠΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΡΡ, ΠΊΠΎΠΉΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅, Π΄Π° ΠΏΡΠΈΠ΅ΠΌΠ° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π·Π°Π΅Π΄Π½ΠΎ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° pass_args = TRUE
Π²ΡΠ² ΡΡΠ½ΠΊΡΠΈΡ CommandHandler()
, ΠΈ ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄, Π² Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ Π±ΠΎΡ, Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ·Π΄Π°ΠΉΡΠ΅ Π½Π΅Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π΅Π½ - Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ. Π‘ΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡΡ ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄ ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΡΠ΅Π΄Π°Π²Π°ΡΠ΅ Π½Π° Π±ΠΎΡΠ° ΡΠ»Π΅Π΄ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°. ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π°Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈ Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»; ΡΠ΅ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΠΈΠ·ΠΏΡΠ°ΡΠ΅Π½ΠΈ Π½Π° ΠΌΠ΅ΡΠΎΠ΄Π° ΠΊΠ°ΡΠΎ ΡΠ΅ΠΊΡΡΠΎΠ² Π²Π΅ΠΊΡΠΎΡ.
ΠΠ΅ΠΊΠ° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΠΈ ΡΠ΅ΡΡΠ²Π°ΠΌΠ΅ Π½Π°ΡΠΈΡ Π±ΠΎΡ.
Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΉΡΠ΅ Π±ΠΎΡΠ° Π²ΡΠ² ΡΠΎΠ½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ
ΠΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΡΡΡΠΏΠΊΠ°, ΠΊΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ, Π΅ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π±ΠΎΡΠ° Π²ΡΠ² ΡΠΎΠ½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ.
ΠΠ° Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΠ»Π΅Π΄Π²Π°ΠΉΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΡΠΌΠ°, ΠΎΠΏΠΈΡΠ°Π½ ΠΏΠΎ-Π΄ΠΎΠ»Ρ:
- ΠΠ°ΠΏΠ°Π·Π΅ΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π° Π±ΠΎΡΠ° Π²ΡΠ² ΡΠ°ΠΉΠ» Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ R. ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ° Π² RStudio ΡΠΎΠ²Π° ΡΡΠ°Π²Π° ΠΏΡΠ΅Π· ΠΌΠ΅Π½ΡΡΠΎ Π΄ΠΎΡΠΈΠ΅, Π΅ΠΊΠΈΠΏ ΠΠ°ΠΏΠ°Π·ΠΈ ΠΊΠ°ΡΠΎ.
- ΠΠΎΠ±Π°Π²Π΅ΡΠ΅ ΠΏΡΡΡ ΠΊΡΠΌ ΠΏΠ°ΠΏΠΊΠ°ΡΠ° bin, ΠΊΠΎΡΡΠΎ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ°, Π² ΠΊΠΎΡΡΠΎ ΡΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π»ΠΈ Π΅Π·ΠΈΠΊΠ° R, ΠΊΡΠΌ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Path, ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ
ΡΡΠΊ . - Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠ°ΠΉΠ», Π² ΠΊΠΎΠΉΡΠΎ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ 1 ΡΠ΅Π΄:
R CMD BATCH C:UsersAlseyDocumentsmy_bot.R
... ΠΠΌΠ΅ΡΡΠΎ C:UsersAlseyDocumentsmy_bot.R Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΡΡΡ Π΄ΠΎ Π²Π°ΡΠΈΡ Π±ΠΎΡ ΡΠΊΡΠΈΠΏΡ. Π ΡΡΡΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π½ΡΠΌΠ° ΠΊΠΈΡΠΈΠ»ΡΠΊΠΈ Π·Π½Π°ΡΠΈ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΈ ΠΏΠΎ ΠΏΡΡΡ, Ρ.ΠΊ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡΠΈΠ½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° Π±ΠΎΡΠ°. ΠΠ°ΠΏΠ°Π·Π΅ΡΠ΅ Π³ΠΎ ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ΡΠ΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΌΡ Ρ TXT Π½Π° ΠΠΠΠ’. - ΠΡΠ²ΠΎΡΠ΅ΡΠ΅ Windows Task Scheduler, ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΎΡΠ²ΠΎΡΠ΅ΡΠ΅ ΠΊΠΎΡΡΠΎ ΠΈ Π΄Π° Π΅ ΠΏΠ°ΠΏΠΊΠ° ΠΈ Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ°
%windir%system32taskschd.msc /s
. ΠΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈ ΠΈ Π΄ΡΡΠ³ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ΡΡΠΊ . - Π Π³ΠΎΡΠ½ΠΎΡΠΎ Π΄ΡΡΠ½ΠΎ ΠΌΠ΅Π½Ρ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ Ρ βΠ‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π·Π°Π΄Π°ΡΠ°...β.
- Π ΡΠ°Π·Π΄Π΅Π»Π° βΠΠ±ΡΠΈβ Π΄Π°ΠΉΡΠ΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΎ ΠΈΠΌΠ΅ Π½Π° Π·Π°Π΄Π°ΡΠ°ΡΠ° ΡΠΈ ΠΈ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ΅ΡΠ΅ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ΅Π»Ρ Π² ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ βΠΠ·ΠΏΡΠ»Π½ΠΈ Π·Π° Π²ΡΠΈΡΠΊΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈβ.
- ΠΡΠΈΠ΄Π΅ΡΠ΅ Π² ΡΠ°Π·Π΄Π΅Π»Π° βΠΠ΅ΠΉΡΡΠ²ΠΈΡβ, ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ Ρ βΠ‘ΡΠ·Π΄Π°Π²Π°Π½Π΅β. Π ΠΏΠΎΠ»Π΅ΡΠΎ "ΠΡΠΎΠ³ΡΠ°ΠΌΠ° ΠΈΠ»ΠΈ ΡΠΊΡΠΈΠΏΡ" ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ Ρ "ΠΡΠ΅Π³Π»Π΅Π΄", Π½Π°ΠΌΠ΅ΡΠ΅ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½ΠΈΡ Π²ΡΠ² Π²ΡΠΎΡΠ°ΡΠ° ΡΡΡΠΏΠΊΠ° ΠΠΠΠ’ ΡΠ°ΠΉΠ» ΠΈ ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ Ρ OK.
- Π©ΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ Ρ OK ΠΈ, Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ ΠΏΠ°ΡΠΎΠ»Π°ΡΠ° Π·Π° Π²Π°ΡΠΈΡ Π°ΠΊΠ°ΡΠ½Ρ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°.
- ΠΠ°ΠΌΠ΅ΡΠ΅ΡΠ΅ ΡΡΠ·Π΄Π°Π΄Π΅Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ° Π² ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°, ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ Ρ ΠΈ ΡΡΠ°ΠΊΠ½Π΅ΡΠ΅ Π²ΡΡΡ Ρ Π±ΡΡΠΎΠ½Π° βΠΠ·ΠΏΡΠ»Π½ΠΈβ Π² Π΄ΠΎΠ»Π½ΠΈΡ Π΄Π΅ΡΠ΅Π½ ΡΠ³ΡΠ».
ΠΠ°ΡΠΈΡΡ Π±ΠΎΡ ΡΠ°Π±ΠΎΡΠΈ Π²ΡΠ² ΡΠΎΠ½ΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ ΠΈ ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ, Π΄ΠΎΠΊΠ°ΡΠΎ Π½Π΅ ΡΠΏΡΠ΅ΡΠ΅ Π·Π°Π΄Π°ΡΠ°ΡΠ° ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠ·ΠΊΠ»ΡΡΠΈΡΠ΅ Π²Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ²ΡΡ, Π½Π° ΠΊΠΎΠΉΡΠΎ Π΅ ΡΡΠ°ΡΡΠΈΡΠ°Π½.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ°Π·Π±ΡΠ°Ρ ΠΌΠ΅ ΠΊΠ°ΠΊ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΠΏΡΠ»Π½ΠΎΡΠ΅Π½Π΅Π½ Π±ΠΎΡ, ΠΊΠΎΠΉΡΠΎ ΠΌΠΎΠΆΠ΅ Π½Π΅ ΡΠ°ΠΌΠΎ Π΄Π° ΠΈΠ·ΠΏΡΠ°ΡΠ° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ, Π½ΠΎ ΠΈ Π΄Π° ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π½Π° Π²Ρ ΠΎΠ΄ΡΡΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠΡΠΈΠ΄ΠΎΠ±ΠΈΡΠΈΡΠ΅ Π·Π½Π°Π½ΠΈΡ Π²Π΅ΡΠ΅ ΡΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ, Π·Π° Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ ΠΎΡ Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ.
Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° ΡΡΠ°ΡΠΈΡ ΡΠ΅ Π³ΠΎΠ²ΠΎΡΠΈ Π·Π° ΡΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ° ΠΊΡΠΌ Π±ΠΎΡΠ° Π·Π° ΠΏΠΎ-ΡΠ΄ΠΎΠ±Π½Π° ΡΠ°Π±ΠΎΡΠ°.
ΠΠ±ΠΎΠ½ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ΅ Π·Π° ΠΌΠΎΠΈΡΠ΅
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com