рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рджрд░реНрд╢рдХрд╣рд░реВ рд╣рд░реЗрдХ рджрд┐рди рддреАрд╡реНрд░ рд░реВрдкрдорд╛ рдмрдвреНрджреИ рдЧрдПрдХреЛ рдЫ, рдпреЛ рдореЗрд╕реЗрдиреНрдЬрд░рдХреЛ рд╕реБрд╡рд┐рдзрд╛, рдЪреНрдпрд╛рдирд▓рд╣рд░реВрдХреЛ рдЙрдкрд╕реНрдерд┐рддрд┐, рдЪреНрдпрд╛рдЯрд╣рд░реВ, рд░ рдкрдХреНрдХреИ рдкрдирд┐ рдмрдЯрд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рд▓реЗ рд╕рд╣рдЬ рдмрдирд╛рдЙрдБрдЫред
рдмрдЯрд╣рд░реВ рдкреВрд░реНрдгрддрдпрд╛ рдлрд░рдХ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рддрдкрд╛рдЗрдБрдХрд╛ рдЧреНрд░рд╛рд╣рдХрд╣рд░реБ рд╕рдВрдЧ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд╕рдВрдЪрд╛рд░ рджреЗрдЦрд┐ рддрдкрд╛рдЗрдБрдХреЛ рдЖрдлреНрдиреИ рдХрд╛рд░реНрдпрд╣рд░реБ рдХреЛ рдкреНрд░рдмрдиреНрдзрди рд╕рдореНрдоред
рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ рдмрдЯ рдорд╛рд░реНрдлрдд рдХреБрдиреИ рдкрдирд┐ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдЧрд░реНрди рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ: рдбреЗрдЯрд╛ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН рд╡рд╛ рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕рд░реНрднрд░рдорд╛ рдХрд╛рд░реНрдпрд╣рд░реВ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН, рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЗрдореЗрд▓рд╣рд░реВ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН, рд░ рдпрд╕реНрддреИред
рдорд╕рдБрдЧ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд▓реЗрдЦрд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓реЗрдЦреНрдиреЗ рдпреЛрдЬрдирд╛ рдЫ
рдпрд╕ рдкрд╣рд┐рд▓реЛ рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рдХрд╕рд░реА рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд░ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗрдЫреМрдВред
рдирддрд┐рдЬрд╛рдХреЛ рд░реВрдкрдорд╛, рд╣рд╛рдореАрд╕рдБрдЧ рдПрдЙрдЯрд╛ рдмреЛрдЯ рд╣реБрдиреЗрдЫ рдЬрд╕рд▓реЗ рд╡рд┐рдиреНрдбреЛрдЬ рдЯрд╛рд╕реНрдХ рд╢реЗрдбреНрдпреБрд▓рд░рдорд╛ рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдЕрдиреНрддрд┐рдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд╕реНрдерд┐рддрд┐ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗрдЫ, рд░ рддрд┐рдиреАрд╣рд░реВрдордзреНрдпреЗ рдХреБрдиреИ рдЕрд╕рдлрд▓ рднрдПрдорд╛ рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрдиреЗрдЫред
рддрд░ рд▓реЗрдЦрд╣рд░реВрдХреЛ рдпрд╕ рд╢реГрдЩреНрдЦрд▓рд╛рдХреЛ рдЙрджреНрджреЗрд╢реНрдп рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ, рд╕рд╛рдБрдШреБрд░реЛ рдХрд╛рд░реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рдмрдЯ рдХрд╕рд░реА рд▓реЗрдЦреНрдиреЗ рднрдиреЗрд░ рд╕рд┐рдХрд╛рдЙрдиреБ рд╣реЛрдЗрди, рддрд░ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рдкреНрдпрд╛рдХреЗрдЬрдХреЛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕рдорд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рдкрд░рд┐рдЪрдп рдЧрд░рд╛рдЙрдиреБ рд╣реЛред telegram.bot
, рд░ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдЬрд╕рдХреЛ рд╕рд╛рде рддрдкрд╛рдИрдВ рдЖрдлреНрдиреЛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдмрдЯрд╣рд░реВ рд▓реЗрдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред
рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ
рдпрджрд┐ рддрдкрд╛рдЗрдБ рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрдорд╛ рд░реБрдЪрд┐ рд░рд╛рдЦреНрдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рддрдкрд╛рдЗрдБ рдореЗрд░реЛ рдорд╛ рд░реБрдЪрд┐ рд░рд╛рдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ R рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ R рдмрд╛рдЯ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрдБрджреИ рдХрд╛рд░реНрдп рд╕реНрдХреНрдпрд╛рди рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджреИ рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛
рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ
рдкрд╣рд┐рд▓реЗ, рд╣рд╛рдореАрд▓реЗ рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпреЛ рд╡рд┐рд╢реЗрд╖ рдмреЛрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдЧрд░рд┐рдиреНрдЫ BotFather, рдЬрд╛рдК рддреНрдпрд╣рд╛рдБ /start
.
рдЬрд╕ рдкрдЫрд┐ рддрдкрд╛рдИрд▓реЗ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд╕реВрдЪреАрдХреЛ рд╕рд╛рде рд╕рдиреНрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ:
BotFather рдмрд╛рдЯ рд╕рдиреНрджреЗрд╢
I can help you create and manage Telegram bots. If you're new to the Bot API, please see the manual (https://core.telegram.org/bots).
You can control me by sending these commands:
/newbot - create a new bot
/mybots - edit your bots [beta]
Edit Bots
/setname - change a bot's name
/setdescription - change bot description
/setabouttext - change bot about info
/setuserpic - change bot profile photo
/setcommands - change the list of commands
/deletebot - delete a bot
Bot Settings
/token - generate authorization token
/revoke - revoke bot access token
/setinline - toggle inline mode (https://core.telegram.org/bots/inline)
/setinlinegeo - toggle inline location requests (https://core.telegram.org/bots/inline#location-based-results)
/setinlinefeedback - change inline feedback (https://core.telegram.org/bots/inline#collecting-feedback) settings
/setjoingroups - can your bot be added to groups?
/setprivacy - toggle privacy mode (https://core.telegram.org/bots#privacy-mode) in groups
Games
/mygames - edit your games (https://core.telegram.org/bots/games) [beta]
/newgame - create a new game (https://core.telegram.org/bots/games)
/listgames - get a list of your games
/editgame - edit a game
/deletegame - delete an existing game
рдирдпрд╛рдБ рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди, рдЖрджреЗрд╢ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН /newbot
.
BotFather рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдмреЛрдЯрдХреЛ рдирд╛рдо рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рд░ рд▓рдЧрдЗрди рдЧрд░реНрди рд╕реЛрдзреНрдиреЗрдЫред
BotFather, [25.07.20 09:39]
Alright, a new bot. How are we going to call it? Please choose a name for your bot.
Alexey Seleznev, [25.07.20 09:40]
My Test Bot
BotFather, [25.07.20 09:40]
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
Alexey Seleznev, [25.07.20 09:40]
@my_test_bot
рддрдкрд╛рдИрдВ рдХреБрдиреИ рдкрдирд┐ рдирд╛рдо рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рддрд░ рд▓рдЧрдЗрди рд╕рдорд╛рдкреНрдд рд╣реБрдиреБрдкрд░реНрдЫ bot
.
рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рд╕рдмреИ рдХреБрд░рд╛ рд╕рд╣реА рд░реВрдкрдорд╛ рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рдореНрди рд╕рдиреНрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ:
Done! Congratulations on your new bot. You will find it at t.me/my_test_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API:
123456789:abcdefghijklmnopqrstuvwxyz
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
рдЕрд░реНрдХреЛ рддрдкрд╛рдИрд▓рд╛рдИ рдкреНрд░рд╛рдкреНрдд рдПрдкреАрдЖрдИ рдЯреЛрдХрди рдЪрд╛рд╣рд┐рдиреНрдЫ, рдореЗрд░реЛ рдЙрджрд╛рд╣рд░рдгрдорд╛ рдпреЛ рд╣реЛ 123456789:abcdefghijklmnopqrstuvwxyz
.
рдпрд╕ рдЪрд░рдгрдорд╛, рдмреЛрдЯ рдмрдирд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рддрдпрд╛рд░реА рдХрд╛рд░реНрдп рдкреВрд░рд╛ рднрдпреЛред
R рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ
рдо рдорд╛рдиреНрдЫреБ рдХрд┐ рддрдкрд╛рдИрдВрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ R рднрд╛рд╖рд╛ рд░ RStudio рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдЫред рдпрджрд┐ рдпреЛ рдорд╛рдорд▓рд╛ рдЫреИрди рднрдиреЗ, рддрдкрд╛рдИрдВ рдпрд╕рд▓рд╛рдИ рд╣реЗрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
Telegram Bot API рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╣рд╛рдореА R рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ
R рдорд╛ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдЧрд░рд┐рдиреНрдЫ install.packages()
, рддреНрдпрд╕реИрд▓реЗ рд╣рд╛рдореАрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреЗ рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди, рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН install.packages("telegram.bot")
.
рддрдкрд╛рдИрд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдердк рдЬрд╛рдиреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ
рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реЗрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЬрдбрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
library(telegram.bot)
R рдмрд╛рдЯ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрдБрджреИ
рддрдкрд╛рдИрд▓реЗ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрднрдПрдХреЛ рдмрдЯ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╕реГрд╖реНрдЯрд┐рдХреЛ рдХреНрд░рдордорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд▓рдЧрдЗрди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдореЗрд░реЛ рдорд╛рдорд▓рд╛рдорд╛ рдпреЛ рд╣реЛ @my_test_bot
.
рдмреЛрдЯрд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рд╕рдиреНрджреЗрд╢ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН, рдЬрд╕реНрддреИ "рд╣реЗ рдмрдЯред" рдпрд╕ рд╕рдордпрдорд╛, рдмреЛрдЯрд╕рдБрдЧ рддрдкрд╛рдИрдВрдХреЛ рдЪреНрдпрд╛рдЯрдХреЛ рдЖрдИрдбреА рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рд╣рд╛рдореАрд▓рд╛рдИ рдпреЛ рдЖрд╡рд╢реНрдпрдХ рдЫред
рдЕрдм рд╣рд╛рдореА R рдорд╛ рдирд┐рдореНрди рдХреЛрдб рд▓реЗрдЦреНрдЫреМрдВред
library(telegram.bot)
# ╤Б╨╛╨╖╨┤╨░╤С╨╝ ╤Н╨║╨╖╨╡╨╝╨┐╨╗╤П╤А ╨▒╨╛╤В╨░
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")
# ╨Ч╨░╨┐╤А╨░╤И╨╕╨▓╨░╨╡╨╝ ╨╕╨╜╤Д╨╛╤А╨╝╨░╤Ж╨╕╤О ╨╛ ╨▒╨╛╤В╨╡
print(bot$getMe())
# ╨Я╨╛╨╗╤Г╤З╨░╨╡╨╝ ╨╛╨▒╨╜╨╛╨▓╨╗╨╡╨╜╨╕╤П ╨▒╨╛╤В╨░, ╤В.╨╡. ╤Б╨┐╨╕╤Б╨╛╨║ ╨╛╤В╨┐╤А╨░╨▓╨╗╨╡╨╜╨╜╤Л╤Е ╨╡╨╝╤Г ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╣
updates <- bot$getUpdates()
# ╨Ч╨░╨┐╤А╨░╤И╨╕╨▓╨░╨╡╨╝ ╨╕╨┤╨╡╨╜╤В╨╕╤Д╨╕╨║╨░╤В╨╛╤А ╤З╨░╤В╨░
# ╨Я╤А╨╕╨╝╨╡╤З╨░╨╜╨╕╨╡: ╨┐╨╡╤А╨╡╨┤ ╨╖╨░╨┐╤А╨╛╤Б╨╛╨╝ ╨╛╨▒╨╜╨╛╨▓╨╗╨╡╨╜╨╕╨╣ ╨▓╤Л ╨┤╨╛╨╗╨╢╨╜╤Л ╨╛╤В╨┐╤А╨░╨▓╨╕╤В╤М ╨▒╨╛╤В╤Г ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡
chat_id <- updates[[1L]]$from_chat_id()
рд╕реБрд░реБрдорд╛, рд╣рд╛рдореА рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рд╕рд╛рде рд╣рд╛рдореНрд░реЛ рдмреЛрдЯрдХреЛ рдЙрджрд╛рд╣рд░рдг рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдЫреМрдВ Bot()
, рдкрд╣рд┐рд▓реЗ рдкреНрд░рд╛рдкреНрдд рдЯреЛрдХрди рдПрдХ рддрд░реНрдХ рдХреЛ рд░реВрдк рдорд╛ рдкрд╛рд╕ рд╣реБрдиреБрдкрд░реНрдЫред
рдХреЛрдбрдорд╛ рдЯреЛрдХрди рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдпреЛ рдЙрддреНрддрдо рдЕрднреНрдпрд╛рд╕ рдорд╛рдирд┐рдиреЗ рдЫреИрди, рддреНрдпрд╕реИрд▓реЗ рддрдкрд╛рдЗрдБ рдпрд╕рд▓рд╛рдИ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рдорд╛ рднрдгреНрдбрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рдпрд╕рд▓рд╛рдИ рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ telegram.bot
рдирд┐рдореНрди рдирд╛рдорд╣рд░реВрдХреЛ рд╡рд╛рддрд╛рд╡рд░рдгреАрдп рдЪрд░рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫ: R_TELEGRAM_BOT_╨Ш╨Ь╨п_╨Т╨Р╨и╨Х╨У╨Ю_╨С╨Ю╨в╨Р
... рд╕рдЯреНрдЯрд╛ ╨Ш╨Ь╨п_╨Т╨Р╨и╨Х╨У╨Ю_╨С╨Ю╨в╨Р
рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджрд╛ рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрдиреБрднрдПрдХреЛ рдирд╛рдо рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдореЗрд░реЛ рдорд╛рдорд▓рд╛рдорд╛ рдпреЛ рдПрдХ рдЪрд░ рд╣реБрдиреЗрдЫ R_TELEGRAM_BOT_My Test Bot
.
рддреНрдпрд╣рд╛рдБ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рдзреЗрд░реИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреН; рдо рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдмреИрднрдиреНрджрд╛ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рд░ рдХреНрд░рд╕-рдкреНрд▓реЗрдЯрдлрд░реНрдордХреЛ рдмрд╛рд░реЗрдорд╛ рдмрддрд╛рдЙрдиреЗрдЫреБред рддрдкрд╛рдИрдХреЛ рдЧреГрд╣ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН (рддрдкрд╛рдИрд▓реЗ рдпрд╕рд▓рд╛рдИ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдлреЗрд▓рд╛ рдкрд╛рд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ path.expand("~")
) рдирд╛рдордХреЛ рд╕рд╛рде рдкрд╛рда рдлрд╛рдЗрд▓ рд░реЗрдиреНрднрд┐рд░реЛрдиред рддрдкрд╛рдЗрдБ рдпреЛ рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрдирд┐ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ file.edit(path.expand(file.path("~", ".Renviron")))
.
рд░ рдпрд╕рдорд╛ рдирд┐рдореНрди рд▓рд╛рдЗрди рдердкреНрдиреБрд╣реЛрд╕реНред
R_TELEGRAM_BOT_╨Ш╨Ь╨п_╨Т╨Р╨и╨Х╨У╨Ю_╨С╨Ю╨в╨Р=123456789:abcdefghijklmnopqrstuvwxyz
рдЕрд░реНрдХреЛ, рддрдкрд╛рдЗрдБ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░рдорд╛ рдмрдЪрдд рдЧрд░рд┐рдПрдХреЛ рдЯреЛрдХрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ bot_token()
, рдЕрд░реНрдерд╛рддреН рдпреЛ рдЬрд╕реНрддреЛ:
bot <- Bot(token = bot_token("My Test Bot"))
рд╡рд┐рдзрд┐ getUpdates()
рд╣рд╛рдореАрд▓рд╛рдИ рдмреЛрдЯ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рдЕрд░реНрдерд╛рддреНред рдЙрд╕рд▓рд╛рдИ рдкрдард╛рдЗрдПрдХрд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВред рд╡рд┐рдзрд┐ from_chat_id()
, рддрдкрд╛рдИрдВрд▓рд╛рдИ рд╕рдиреНрджреЗрд╢ рдкрдард╛рдЗрдПрдХреЛ рдЪреНрдпрд╛рдЯрдХреЛ ID рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдмреЛрдЯрдмрд╛рдЯ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрди рд╣рд╛рдореАрд▓рд╛рдИ рдпреЛ рдЖрдИрдбреА рдЪрд╛рд╣рд┐рдиреНрдЫред
рд╡рд┐рдзрд┐рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рд╡рд╕реНрддреБрдмрд╛рдЯ рдЪреНрдпрд╛рдЯ рдЖрдИрдбреАрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд getUpdates()
рддрдкрд╛рдИрд▓реЗ рдХреЗрд╣рд┐ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рдкрдирд┐ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реБрдиреНрдЫред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╕рдиреНрджреЗрд╢ рдкрдард╛рдЙрдиреЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реАред
updates[[1L]]$message$from
$id
[1] 000000000
$is_bot
[1] FALSE
$first_name
[1] "Alexey"
$last_name
[1] "Seleznev"
$username
[1] "AlexeySeleznev"
$language_code
[1] "ru"
рддреНрдпрд╕реЛрднрдП, рдпрд╕ рдЪрд░рдгрдорд╛ рд╣рд╛рдореАрд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдмреИ рдЪреАрдЬрд╣рд░реВ рдЫрдиреН рдЬреБрди рд╣рд╛рдореАрд▓реЗ рдмреЛрдЯрдмрд╛рдЯ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╕рдиреНрджреЗрд╢ рдкрдард╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫред рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реМрдВ sendMessage()
, рдЬрд╕рдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рдЪреНрдпрд╛рдЯ рдЖрдИрдбреА, рд╕рдиреНрджреЗрд╢ рдкрд╛рда, рд░ рд╕рдиреНрджреЗрд╢ рдкрд╛рда рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рдХрд╛рд░ рдкрд╛рд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рдХрд╛рд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди рд╡рд╛ HTML рд╣реБрди рд╕рдХреНрдЫ рд░ рддрд░реНрдХ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ parse_mode
.
# ╨Ю╤В╨┐╤А╨░╨▓╨║╨░ ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╤П
bot$sendMessage(chat_id,
text = "╨Я╤А╨╕╨▓╨╡╤В, *╨╢╨╕╤А╨╜╤Л╨╣ ╤В╨╡╨║╤Б╤В* _╨║╤Г╤А╤Б╨╕╨▓_",
parse_mode = "Markdown"
)
рдорд╛рд░реНрдХрдбрд╛рдЙрди рдврд╛рдБрдЪрд╛ рдЖрдзрд╛рд░рднреВрдд:
- рдмреЛрд▓реНрдб рдлрдиреНрдЯ * рдХреЛ рд╕рд╛рде рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ:
- рдЙрджрд╛рд╣рд░рдг:
*╨╢╨╕╤А╨╜╤Л╨╣ ╤И╤А╨╕╤В╤Д*
- рдкрд░рд┐рдгрд╛рдо: рдмреЛрд▓реНрдб рдлрдиреНрдЯ
- рдЙрджрд╛рд╣рд░рдг:
- рдЗрдЯрд╛рд▓рд┐рдХрд▓рд╛рдИ рдЕрдиреНрдбрд░рд╕реНрдХреЛрд░рджреНрд╡рд╛рд░рд╛ рд╕рдВрдХреЗрдд рдЧрд░рд┐рдПрдХреЛ рдЫ:
- рдЙрджрд╛рд╣рд░рдг:
_╨║╤Г╤А╤Б╨╕╨▓_
- рдкрд░рд┐рдгрд╛рдо: рдИрдЯрд╛рд▓рд┐рдХ
- рдЙрджрд╛рд╣рд░рдг:
- рдореЛрдиреЛрд╕реНрдкреЗрд╕ рдлрдиреНрдЯ, рдЬреБрди рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ, apostrophes рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ - `:
- рдЙрджрд╛рд╣рд░рдг: `рдореЛрдиреЛрд╕реНрдкреЗрд╕ рдлрдиреНрдЯ`
- рдкрд░рд┐рдгрд╛рдо:
╨╝╨╛╨╜╨╛╤И╨╕╤А╨╕╨╜╨╜╤Л╨╣ ╤И╤А╨╕╤Д╤В
HTML рдорд╛рд░реНрдХрдЕрдк рдврд╛рдБрдЪрд╛рдХреЛ рдЖрдзрд╛рд░рднреВрдд:
HTML рдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдкрд╛рдардХреЛ рднрд╛рдЧрд▓рд╛рдИ рд░реНтАНрдпрд╛рдк рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ рдЬреБрди рдЯреНрдпрд╛рдЧрд╣рд░реВрдорд╛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЙрджрд╛рд╣рд░рдг <╤В╨╡╨│>╤В╨╡╨║╤Б╤В</╤В╨╡╨│>
.
- <tag> - рдЦреЛрд▓реНрдиреЗ рдЯреНрдпрд╛рдЧ
- - рдмрдиреНрдж рдЯреНрдпрд╛рдЧ
HTML рдорд╛рд░реНрдХрдЕрдк рдЯреНрдпрд╛рдЧрд╣рд░реВ
<b>
- рдмреЛрд▓реНрдб рдлрдиреНрдЯ- рдЙрджрд╛рд╣рд░рдг:
<b>╨╢╨╕╤А╨╜╤Л╨╣ ╤И╤А╨╕╤Д╤В</b>
- рдкреНрд░рднрд╛рд╡ рдмреЛрд▓реНрдб рдлрдиреНрдЯ
- рдЙрджрд╛рд╣рд░рдг:
<i>
- рдЗрдЯрд╛рд▓рд┐рдХ- рдЙрджрд╛рд╣рд░рдг:
<i>╨║╤Г╤А╤Б╨╕╨▓</i>
- рдкрд░рд┐рдгрд╛рдо: рдИрдЯрд╛рд▓рд┐рдХ
- рдЙрджрд╛рд╣рд░рдг:
- тАФ ╨╝╨╛╨╜╨╛╤И╨╕╤А╨╕╨╜╨╜╤Л╨╣ ╤И╤А╨╕╤Д╤В
- рдЙрджрд╛рд╣рд░рдг: ╨╝╨╛╨╜╨╛╤И╨╕╤А╨╕╨╜╨╜╤Л╨╣ ╤И╤А╨╕╤Д╤В
- рдкрд░рд┐рдгрд╛рдо:
╨╝╨╛╨╜╨╛╤И╨╕╤А╨╕╨╜╨╜╤Л╨╣ ╤И╤А╨╕╤Д╤В
рдкрд╛рдардХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рддрдкрд╛рдЗрдБ рд╡рд┐рд╢реЗрд╖ рд╡рд┐рдзрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдЕрдиреНрдп рд╕рд╛рдордЧреНрд░реА рдкрдард╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ:
# ╨Ю╤В╨┐╤А╨░╨▓╨╕╤В╤М ╨╕╨╖╨╛╨▒╤А╨░╨╢╨╡╨╜╨╕╨╡
bot$sendPhoto(chat_id,
photo = "https://telegram.org/img/t_logo.png"
)
# ╨Ю╤В╨┐╤А╨░╨▓╨║╨░ ╨│╨╛╨╗╨╛╤Б╨╛╨▓╨╛╨│╨╛ ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╤П
bot$sendAudio(chat_id,
audio = "http://www.largesound.com/ashborytour/sound/brobob.mp3"
)
# ╨Ю╤В╨┐╤А╨░╨▓╨╕╤В╤М ╨┤╨╛╨║╤Г╨╝╨╡╨╜╤В
bot$sendDocument(chat_id,
document = "https://github.com/ebeneditos/telegram.bot/raw/gh-pages/docs/telegram.bot.pdf"
)
# ╨Ю╤В╨┐╤А╨░╨▓╨╕╤В╤М ╤Б╤В╨╕╨║╨╡╤А
bot$sendSticker(chat_id,
sticker = "https://www.gstatic.com/webp/gallery/1.webp"
)
# ╨Ю╤В╨┐╤А╨░╨▓╨╕╤В╤М ╨▓╨╕╨┤╨╡╨╛
bot$sendVideo(chat_id,
video = "http://techslides.com/demos/sample-videos/small.mp4"
)
# ╨Ю╤В╨┐╤А╨░╨▓╨╕╤В╤М gif ╨░╨╜╨╕╨╝╨░╤Ж╨╕╤О
bot$sendAnimation(chat_id,
animation = "https://media.giphy.com/media/sIIhZliB2McAo/giphy.gif"
)
# ╨Ю╤В╨┐╤А╨░╨▓╨╕╤В╤М ╨╗╨╛╨║╨░╤Ж╨╕╤О
bot$sendLocation(chat_id,
latitude = 51.521727,
longitude = -0.117255
)
# ╨Ш╨╝╨╕╤В╨░╤Ж╨╕╤П ╨┤╨╡╨╣╤Б╤В╨▓╨╕╤П ╨▓ ╤З╨░╤В╨╡
bot$sendChatAction(chat_id,
action = "typing"
)
рддреАред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ sendPhoto()
рддрдкрд╛рдИрдВрд▓реЗ рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрднрдПрдХреЛ рдЫрд╡рд┐рдХреЛ рд░реВрдкрдорд╛ рдмрдЪрдд рдЧрд░рд┐рдПрдХреЛ рдЧреНрд░рд╛рдл рдкрдард╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ ggplot2
.
рд╡рд┐рдиреНрдбреЛрдЬ рдЯрд╛рд╕реНрдХ рд╢реЗрдбреНрдпреБрд▓рд░ рдЬрд╛рдБрдЪ рдЧрд░реНрджреИ рд░ рдЕрд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрдорд╛ рд╕рдорд╛рдкреНрдд рднрдПрдХрд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрдБрджреИ
рд╡рд┐рдиреНрдбреЛрдЬ рдЯрд╛рд╕реНрдХ рд╢реЗрдбреНрдпреБрд▓рд░рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рддрдкрд╛рдИрдВрд▓реЗ рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ taskscheduleR
, рд░ рдбрд╛рдЯрд╛рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рд╕реБрд╡рд┐рдзрд╛рдХреЛ рд▓рд╛рдЧрд┐, рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН dplyr
.
# ╨г╤Б╤В╨░╨╜╨╛╨▓╨║╨░ ╨┐╨░╨║╨╡╤В╨╛╨▓
install.packages(c('taskscheduleR', 'dplyr'))
# ╨Я╨╛╨┤╨║╨╗╤О╤З╨╡╨╜╨╕╨╡ ╨┐╨░╨║╨╡╤В╨╛╨▓
library(taskscheduleR)
library(dplyr)
рдЕрд░реНрдХреЛ, рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ taskscheduler_ls()
рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдЕрдиреБрд╕реВрдЪрдХрдмрд╛рдЯ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рдЕрдиреБрд░реЛрдз рдЧрд░реНрдЫреМрдВред рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ filter()
рдкреНрдпрд╛рдХреЗрдЬрдмрд╛рдЯ dplyr
рд╣рд╛рдореАрд▓реЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд╕рдореНрдкрдиреНрди рднрдПрдХрд╛ рд░ реж рдХреЛ рдЕрдиреНрддрд┐рдо рдирддрд┐рдЬрд╛рдХреЛ рд╕реНрдерд┐рддрд┐ рднрдПрдХрд╛ рд░ 0 рдХреЛ рд╕реНрдерд┐рддрд┐, рдЕрд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХрд╛ рдХрд╛рд░реНрдпрд╣рд░реВ, рд░ рд╣рд╛рд▓ рдЪрд▓рд┐рд░рд╣реЗрдХрд╛ рдХрд╛рд░реНрдпрд╣рд░реВрд▓рд╛рдИ рд╣рд╛рдореАрд▓реЗ рд╕реВрдЪреАрдмрд╛рдЯ рд╣рдЯрд╛рдЙрдБрдЫреМрдВред
# ╨╖╨░╨┐╤А╨░╤И╨╕╨▓╨░╨╡╨╝ ╤Б╨┐╨╕╤Б╨╛╨║ ╨╖╨░╨┤╨░╤З
task <- task <- taskscheduler_ls() %>%
filter(! `Last Result` %in% c("0", "267011") &
`Scheduled Task State` == "Enabled" &
Status != "Running") %>%
select(TaskName) %>%
unique() %>%
unlist() %>%
paste0(., collapse = "n")
рд╡рд╕реНрддреБрдорд╛ task
рд╣рд╛рдореАрд╕рдБрдЧ рдЕрдм рдЕрд╕рдлрд▓ рднрдПрдХрд╛ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдЫ, рд╣рд╛рдореАрд▓реЗ рдпреЛ рд╕реВрдЪреА рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рдкрдард╛рдЙрдиреБ рдкрд░реНрдЫред
рдпрджрд┐ рд╣рд╛рдореА рдкреНрд░рддреНрдпреЗрдХ рдЖрджреЗрд╢рд▓рд╛рдИ рдердк рд╡рд┐рд╡рд░рдгрдорд╛ рд╣реЗрд░реНрдЫреМрдВ, рддреНрдпрд╕рдкрдЫрд┐:
filter()
- рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХрд╛ рд╕рд░реНрддрд╣рд░реВ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╕реВрдЪреА рдлрд┐рд▓реНрдЯрд░ рдЧрд░реНрджрдЫselect()
- рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдирд╛рдордХреЛ рд╕рд╛рде рддрд╛рд▓рд┐рдХрд╛рдорд╛ рдПрдЙрдЯрд╛ рдорд╛рддреНрд░ рдХреНрд╖реЗрддреНрд░ рдЫреЛрдбреНрдЫunique()
- рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдирд╛рдорд╣рд░реВ рд╣рдЯрд╛рдЙрдБрдЫunlist()
тАФ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рддрд╛рд▓рд┐рдХрд╛ рд╕реНрддрдореНрднрд▓рд╛рдИ рднреЗрдХреНрдЯрд░рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрджрдЫpaste0()
тАФ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рдирд╛рдорд▓рд╛рдИ рдПрдХ рд▓рд╛рдЗрдирдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдЫ, рд░ рд░реЗрдЦрд╛ рдлрд┐рдбрд▓рд╛рдИ рд╡рд┐рднрд╛рдЬрдХрдХреЛ рд░реВрдкрдорд╛ рд░рд╛рдЦреНрдЫ, рдЕрд░реНрдерд╛рддреНредn
.
рдпреЛ рдирддрд┐рдЬрд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдорд╛рд░реНрдлрдд рдкрдард╛рдЙрди рдмрд╛рдБрдХреА рдЫред
bot$sendMessage(chat_id,
text = task,
parse_mode = "Markdown"
)
рддреНрдпрд╕реЛрднрдП, рдпрд╕ рд╕рдордпрдорд╛ рдмреЛрдЯ рдХреЛрдб рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:
рдХрд╛рд░реНрдп рд╕рдореАрдХреНрд╖рд╛ рдмреЛрдЯ рдХреЛрдб
# ╨Я╨╛╨┤╨║╨╗╤О╤З╨╡╨╜╨╕╨╡ ╨┐╨░╨║╨╡╤В╨░
library(telegram.bot)
library(taskscheduleR)
library(dplyr)
# ╨╕╨╜╨╕╤Ж╨╕╨░╨╗╨╕╨╖╨╕╤А╤Г╨╡╨╝ ╨▒╨╛╤В╨░
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")
# ╨╕╨┤╨╡╨╜╤В╨╕╤Д╨╕╨║╨░╤В╨╛╤А ╤З╨░╤В╨░
chat_id <- 123456789
# ╨╖╨░╨┐╤А╨░╤И╨╕╨▓╨░╨╡╨╝ ╤Б╨┐╨╕╤Б╨╛╨║ ╨╖╨░╨┤╨░╤З
task <- taskscheduler_ls() %>%
filter(! `Last Result` %in% c("0", "267011") &
`Scheduled Task State` == "Enabled" &
Status != "Running") %>%
select(TaskName) %>%
unique() %>%
unlist() %>%
paste0(., collapse = "n")
# ╨╡╤Б╨╗╨╕ ╨╡╤Б╤В╤М ╨┐╤А╨╛╨▒╨╗╨╡╨╝╨╜╤Л╨╡ ╨╖╨░╨┤╨░╤З╨╕ ╨╛╤В╨┐╤А╨░╨▓╨╗╤П╨╡╨╝ ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╡
if ( task != "" ) {
bot$sendMessage(chat_id,
text = task,
parse_mode = "Markdown"
)
}
рдорд╛рдерд┐рдХреЛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛, рдХреЛрдбрдорд╛ рддрдкрд╛рдИрдВрдХреЛ рдмреЛрдЯ рдЯреЛрдХрди рд░ рддрдкрд╛рдИрдВрдХреЛ рдЪреНрдпрд╛рдЯ ID рд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
рддрдкрд╛рдИрдВрд▓реЗ рдлрд┐рд▓реНрдЯрд░рд┐рдЩ рдХрд╛рд░реНрдпрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ рд╕рд░реНрддрд╣рд░реВ рдердкреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрднрдПрдХреЛ рдХрд╛рд░реНрдпрд╣рд░реВ рдорд╛рддреНрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрджреИ, рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рдмрд╛рд╣реЗрдХред
рддрдкрд╛рдИрдВ рдлрд░рдХ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рдорд╛ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрдирд┐ рд░рд╛рдЦреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рд░ рдпрд╕рдорд╛ рдЪреНрдпрд╛рдЯ рдЖрдИрдбреА рд░ рдЯреЛрдХрди рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрдкрд╛рдИрдВ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкрдвреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрдпрд╛рдХреЗрдЬ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ configr
.
рдЙрджрд╛рд╣рд░рдг ini рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди
[telegram_bot]
;╨╜╨░╤Б╤В╤А╨╛╨╣╨║╨╕ ╤В╨╡╨╗╨╡╨│╤А╨░╨╝ ╨▒╨╛╤В╨░ ╨╕ ╤З╨░╤В╨░, ╨▓ ╨║╨╛╤В╨╛╤А╤Л╨╣ ╨▒╤Г╨┤╤Г╤В ╨┐╤А╨╕╤Е╨╛╨┤╨╕╤В╤М ╤Г╨▓╨╡╨┤╨╛╨╝╨╗╨╡╨╜╨╕╤П
chat_id=12345678
bot_token=123456789:abcdefghijklmnopqrstuvwxyz"
R рдорд╛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдмрд╛рдЯ рдЪрд░ рдкрдвреНрдиреЗ рдЙрджрд╛рд╣рд░рдг
library(configr)
# ╤З╤В╨╡╨╜╨╕╨╡ ╨║╨╛╨╜╤Д╨╕╨╜╨░
config <- read.config('C:/╨┐╤Г╤В╤М_╨║_╨║╨╛╨╜╤Д╨╕╨│╤Г/config.cfg', rcmd.parse = TRUE)
bot_token <- config$telegram_bot$bot_token
chat_id <- config$telegram_bot$chat_id
рдХрд╛рд░реНрдп рд╕реНрдХреНрдпрд╛рди рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджреИ
рддрд╛рд▓рд┐рдХрд╛рдорд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдХреЛ рдкреНрд░рдХреНрд╖реЗрдкрдг рд╕реЗрдЯрдЕрдк рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдпрд╕рдорд╛ рдердк рд╡рд┐рд╡рд░рдгрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдЫ
рдорд╛рдиреМрдВ рдХрд┐ рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдмреЛрдЯ рдХреЛрдб рдлрд╛рдЗрд▓рдорд╛ рдмрдЪрдд рдЧрд░реНрдпреМрдВ check_bot.R
ред рдпрд╕ рдлрд╛рдЗрд▓рд▓рд╛рдИ рдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, рдпреА рдЪрд░рдгрд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН:
- рдкрде рдкреНрд░рдгрд╛рд▓реА рдЪрд░рдорд╛ R рд╕реНрдерд╛рдкрдирд╛ рднрдПрдХреЛ рдлреЛрд▓реНрдбрд░рдорд╛ рдкрде рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН; рд╡рд┐рдиреНрдбреЛрдЬрдорд╛, рдкрде рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рд╣реБрдиреЗрдЫ:
C:Program FilesRR-4.0.2bin
. - рдХреЗрд╡рд▓ рдПрдХ рд▓рд╛рдЗрди рд╕рдВрдЧ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдп рдмреНрдпрд╛рдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
R CMD BATCH C:rscriptscheck_botcheck_bot.R
ред рдмрджрд▓реНрдиреБрд╣реЛрд╕реНC:rscriptscheck_botcheck_bot.R
рддрдкрд╛рдИрдВрдХреЛ R рдлрд╛рдЗрд▓рдХреЛ рдкреВрд░реНрдг рдорд╛рд░реНрдЧрдорд╛ред - рдЕрд░реНрдХреЛ, рдкреНрд░рдХреНрд╖реЗрдкрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди Windows Task Scheduler рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣рд░реЗрдХ рдЖрдзрд╛ рдШрдгреНрдЯрд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛
рдпрд╕ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд░ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╡рд┐рднрд┐рдиреНрди рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВред
рдореИрд▓реЗ рд╡рд┐рдиреНрдбреЛрдЬ рдЯрд╛рд╕реНрдХ рд╢реЗрдбреНрдпреБрд▓рд░рдХреЛ рдЕрдиреБрдЧрдорди рдЧрд░реНрдиреЗ рдХрд╛рд░реНрдпрдХреЛ рд╡рд░реНрдгрди рдЧрд░реЗрдВ, рддрд░ рддрдкрд╛рдИрд▓реЗ рдпрд╕ рд▓реЗрдЦрдорд╛ рднрдПрдХреЛ рд╕рд╛рдордЧреНрд░реАрд▓рд╛рдИ рдХреБрдиреИ рдкрдирд┐ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдореМрд╕рдо рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирдмрд╛рдЯ рд╕реНрдЯрдХ рдПрдХреНрд╕рдЪреЗрдиреНрдЬрдорд╛ рд╕реНрдЯрдХ рдЙрджреНрдзрд░рдгрд╣рд░реВ, рдХрд┐рдирднрдиреЗ R рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
рдЕрд░реНрдХреЛ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореА рдмреЛрдЯрдорд╛ рдХрд╕рд░реА рдЖрджреЗрд╢рд╣рд░реВ рд░ рдХрд┐рдмреЛрд░реНрдб рдердкреНрдиреЗ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗрдЫреМрдВ рддрд╛рдХрд┐ рдпрд╕рд▓реЗ рд╕реВрдЪрдирд╛рд╣рд░реВ рдорд╛рддреНрд░ рдкрдард╛рдЙрди рд╕рдХреНрджреИрди, рддрд░ рдердк рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпрд╣рд░реВ рдкрдирд┐ рдЧрд░реНрди рд╕рдХреНрдЫред
рд╕реНрд░реЛрдд: www.habr.com