рдЖрд░ рдордзреНрдпреЗ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЙрдЯ рд▓рд┐рд╣рд┐рдгреЗ (рднрд╛рдЧ 1): рдмреЙрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордордзреНрдпреЗ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреЗ

рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордЪреЗ рдкреНрд░реЗрдХреНрд╖рдХ рджрд░рд░реЛрдЬ рд╡реЗрдЧрд╛рдиреЗ рд╡рд╛рдврдд рдЖрд╣реЗрдд, рд╣реЗ рдореЗрд╕реЗрдВрдЬрд░рдЪреНрдпрд╛ рд╕реЛрдпреАрдореБрд│реЗ, рдЪреЕрдиреЗрд▓рдЪреА рдЙрдкрд╕реНрдерд┐рддреА, рдЪреЕрдЯреНрд╕ рдЖрдгрд┐ рдЕрд░реНрдерд╛рддрдЪ рдмреЙрдЯреНрд╕ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдпрд╛рдореБрд│реЗ рд╕реБрд▓рдн рд╣реЛрддреЗ.

рддреБрдордЪреНрдпрд╛ рдЧреНрд░рд╛рд╣рдХрд╛рдВрд╢реА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╕рдВрдкреНрд░реЗрд╖рдг рдХрд░рдгреНрдпрд╛рдкрд╛рд╕реВрди рддреЗ рддреБрдордЪреА рд╕реНрд╡рддрдГрдЪреА рдХрд╛рд░реНрдпреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдкрд░реНрдпрдВрдд рдмреЙрдЯреНрд╕рдЪрд╛ рд╡рд╛рдкрд░ рдкреВрд░реНрдгрдкрдгреЗ рднрд┐рдиреНрди рд╣реЗрддреВрдВрд╕рд╛рдареА рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ.

рдореВрд▓рдд:, рддреБрдореНрд╣реА рдмреЙрдЯрджреНрд╡рд╛рд░реЗ рдХреЛрдгрддреЗрд╣реА рдСрдкрд░реЗрд╢рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛: рдбреЗрдЯрд╛ рдкрд╛рдард╡рдгреЗ рдХрд┐рдВрд╡рд╛ рд╡рд┐рдирдВрддреА рдХрд░рдгреЗ, рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдХрд╛рд░реНрдпреЗ рдЪрд╛рд▓рд╡рдгреЗ, рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдорд╛рд╣рд┐рддреА рдЧреЛрд│рд╛ рдХрд░рдгреЗ, рдИрдореЗрд▓ рдкрд╛рдард╡рдгреЗ рдЗ.

рдореА рд╕реЛрдмрдд рдХрд╕реЗ рдХрд╛рдо рдХрд░рд╛рд╡реЗ рдпрд╛рдмрджреНрджрд▓ рд▓реЗрдЦрд╛рдВрдЪреА рдорд╛рд▓рд┐рдХрд╛ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдЪреА рдпреЛрдЬрдирд╛ рдЖрдЦрдд рдЖрд╣реЗ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЙрдЯ API, рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ рдЧрд░рдЬреЗрдиреБрд╕рд╛рд░ рдмреЙрдЯреНрд╕ рд▓рд┐рд╣рд╛.

рдЖрд░ рдордзреНрдпреЗ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЙрдЯ рд▓рд┐рд╣рд┐рдгреЗ (рднрд╛рдЧ 1): рдмреЙрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрдгрд┐ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордордзреНрдпреЗ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рдгреЗ

рдпрд╛ рдкрд╣рд┐рд▓реНрдпрд╛ рд▓реЗрдЦрд╛рдд рдЖрдкрдг рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдХрд╕рд╛ рдмрдирд╡рд╛рдпрдЪрд╛ рдЖрдгрд┐ рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдЯреЗрд▓реАрдЧреНрд░рд╛рдордордзреНрдпреЗ рд╕реВрдЪрдирд╛ рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рдХрд╕рд╛ рдХрд░рд╛рдпрдЪрд╛ рддреЗ рд╕рдордЬреВрди рдШреЗрдК.

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

рдкрд░рдВрддреБ рд▓реЗрдЦрд╛рдВрдЪреНрдпрд╛ рдпрд╛ рдорд╛рд▓рд┐рдХреЗрдЪрд╛ рдЙрджреНрджреЗрд╢ рд╡рд┐рд╢рд┐рд╖реНрдЯ, рдЕрд░реБрдВрдж рдХрд╛рд░реНрдпрд╛рд╕рд╛рдареА рдмреЙрдЯ рдХрд╕рд╛ рд▓рд┐рд╣рд╛рдпрдЪрд╛ рд╣реЗ рд╢рд┐рдХрд╡рдгреЗ рд╣рд╛ рдирд╛рд╣реА рддрд░ рд╕рд╛рдорд╛рдиреНрдпрдд: рдкреЕрдХреЗрдЬрдЪреНрдпрд╛ рд╡рд╛рдХреНрдпрд░рдЪрдирд╛рд╢реА рддреБрдордЪреА рдУрд│рдЦ рдХрд░реВрди рджреЗрдгреЗ рд╣рд╛ рдЖрд╣реЗ. telegram.bot, рдЖрдгрд┐ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЗ рдЬреНрдпрд╛рд╕рд╣ рддреБрдореНрд╣реА рддреБрдордЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдмреЙрдЯреНрд╕ рд▓рд┐рд╣реВ рд╢рдХрддрд╛.

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

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

  1. рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ
  2. рдЖрд░ рдордзреНрдпреЗ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЙрдЯрд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреЕрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ
  3. R рд╡рд░реВрди рдЯреЗрд▓реАрдЧреНрд░рд╛рдорд╡рд░ рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рдд рдЖрд╣реЗ
  4. рдХрд╛рд░реНрдп рд╕реНрдХреЕрди рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╡реЗрд│рд╛рдкрддреНрд░рдХ рд╕реЗрдЯ рдХрд░рдгреЗ
  5. рдирд┐рд╖реНрдХрд░реНрд╖

рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ

рдкреНрд░рдердо, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдПрдХ рдмреЙрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣реЗ рд╡рд┐рд╢реЗрд╖ рдмреЙрдЯ рд╡рд╛рдкрд░реВрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ рдмреЙрдЯ рдлреЗрджрд░, рдЬрд╛ рджреБрд╡рд╛ рдЖрдгрд┐ рдмреЙрдЯрд▓рд╛ рд▓рд┐рд╣рд╛ /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

рдкреБрдвреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдкреНрд░рд╛рдкреНрдд API рдЯреЛрдХрдирдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕реЗрд▓, рдорд╛рдЭреНрдпрд╛ рдЙрджрд╛рд╣рд░рдгрд╛рдд рддреЗ рдЖрд╣реЗ 123456789:abcdefghijklmnopqrstuvwxyz.

рдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░, рдмреЙрдЯ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░реАрдЪреЗ рдХрд╛рдо рдкреВрд░реНрдг рдЭрд╛рд▓реЗ рдЖрд╣реЗ.

рдЖрд░ рдордзреНрдпреЗ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЙрдЯрд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреЕрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ

рдореА рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рддреЛ рдХреА рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдзреАрдкрд╛рд╕реВрдирдЪ R рднрд╛рд╖рд╛ рдЖрдгрд┐ RStudio рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдЖрд╣реЗ. рдЬрд░ рдЕрд╕реЗ рдирд╕реЗрд▓ рддрд░ рдЖрдкрдг рд╣реЗ рдкрд╛рд╣реВ рд╢рдХрддрд╛ рд╡реНрд╣рд┐рдбрд┐рдУ рдзрдбрд╛ рддреЗ рдХрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛рд╡реЗ рдпрд╛рд╡рд░.

Telegram Bot API рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА R рдкреЕрдХреЗрдЬ рд╡рд╛рдкрд░реВ telegram.bot.

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(), рддреБрдореНрд╣рд╛рд▓рд╛ рдЪреЕрдЯрдЪрд╛ рдЖрдпрдбреА рдорд┐рд│рд╡рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ рдЬреНрдпрд╛рд╡рд░реВрди рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рд▓рд╛ рдЧреЗрд▓рд╛ рд╣реЛрддрд╛. рдмреЙрдЯрд╡рд░реВрди рд╕рдВрджреЗрд╢ рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рдЖрдпрдбреАрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ.

рдкрдзреНрджрддреАрдиреЗ рдорд┐рд│рд╡рд▓реЗрд▓реНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрд╡рд░реВрди рдЪреЕрдЯ рдЖрдпрдбреА рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд 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(), рдЬреНрдпрд╛рдордзреНрдпреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЪреЕрдЯ рдЖрдпрдбреА, рд╕рдВрджреЗрд╢ рдордЬрдХреВрд░ рдЖрдгрд┐ рд╕рдВрджреЗрд╢ рдордЬрдХреВрд░ рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рдХрд╛рд░ рдкрд╛рд╕ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдорд╛рд░реНрдХрдЕрдк рдкреНрд░рдХрд╛рд░ рдорд╛рд░реНрдХрдбрд╛рдЙрди рдХрд┐рдВрд╡рд╛ рдПрдЪрдЯреАрдПрдордПрд▓ рдЕрд╕реВ рд╢рдХрддреЛ рдЖрдгрд┐ рд╡рд┐рддрд░реНрдХрд╛рджреНрд╡рд╛рд░реЗ рд╕реЗрдЯ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ parse_mode.

# ╨Ю╤В╨┐╤А╨░╨▓╨║╨░ ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╤П
bot$sendMessage(chat_id,
                text = "╨Я╤А╨╕╨▓╨╡╤В, *╨╢╨╕╤А╨╜╤Л╨╣ ╤В╨╡╨║╤Б╤В* _╨║╤Г╤А╤Б╨╕╨▓_",
                parse_mode = "Markdown"
)

рдорд╛рд░реНрдХрдбрд╛рдЙрди рд╕реНрд╡рд░реВрдкрди рдореВрд▓рднреВрдд рдЧреЛрд╖реНрдЯреА:

  • рдард│рдХ рдлреЙрдиреНрдЯ * рд╕рд╣ рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХреЗрд▓рд╛ рдЖрд╣реЗ:
    • рдЙрджрд╛рд╣рд░рдгрдГ *╨╢╨╕╤А╨╜╤Л╨╣ ╤И╤А╨╕╤В╤Д*
    • рдкрд░рд┐рдгрд╛рдо: рдард│рдХ рдлреЙрдиреНрдЯ
  • рддрд┐рд░реНрдпрдХ рдЕрдВрдбрд░рд╕реНрдХреЛрдЕрд░рджреНрд╡рд╛рд░реЗ рджрд░реНрд╢рд╡рд▓реЗ рдЬрд╛рддрд╛рдд:
    • рдЙрджрд╛рд╣рд░рдгрдГ _╨║╤Г╤А╤Б╨╕╨▓_
    • рдкрд░рд┐рдгрд╛рдо: рддрд┐рд░реНрдпрдХ
  • рдореЛрдиреЛрд╕реНрдкреЗрд╕ рдлреЙрдиреНрдЯ, рдЬреЛ рд╕рд╣рд╕рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛрдб рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ, рдНрдкреЛрд╕реНрдЯреНрд░реЙрдлреА рд╡рд╛рдкрд░реВрди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ - `:
    • рдЙрджрд╛рд╣рд░рдг: `рдореЛрдиреЛрд╕реНрдкреЗрд╕ рдлреЙрдиреНрдЯ`
    • рдкрд░рд┐рдгрд╛рдо: ╨╝╨╛╨╜╨╛╤И╨╕╤А╨╕╨╜╨╜╤Л╨╣ ╤И╤А╨╕╤Д╤В

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 рдЖрд╣реЗ, рдЖрдгрд┐ рдЬреНрдпрд╛рдВрдирд╛ рдХрдзреАрд╣реА рд▓реЙрдиреНрдЪ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдирд╛рд╣реА рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреА рд╕реНрдерд┐рддреА 267011 рдЖрд╣реЗ, рдЕрдХреНрд╖рдо рдХреЗрд▓реЗрд▓реА рдХрд╛рд░реНрдпреЗ рдЖрдгрд┐ рд╕рдзреНрдпрд╛ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реА рдХрд╛рд░реНрдпреЗ.

# ╨╖╨░╨┐╤А╨░╤И╨╕╨▓╨░╨╡╨╝ ╤Б╨┐╨╕╤Б╨╛╨║ ╨╖╨░╨┤╨░╤З
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"
  )

}

рд╡рд░реАрд▓ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░рддрд╛рдирд╛, рдХреЛрдбрдордзреНрдпреЗ рддреБрдордЪреЗ рдмреЙрдЯ рдЯреЛрдХрди рдЖрдгрд┐ рддреБрдордЪрд╛ рдЪреЕрдЯ рдЖрдпрдбреА рдмрджрд▓рд╛.

рддреБрдореНрд╣реА рдлрд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдЯрд╛рд╕реНрдХрд╕рд╛рдареА рдЕрдЯреА рдЬреЛрдбреВ рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рд┐рд╕реНрдЯреАрдо рд╡рдЧрд│реВрди рдлрдХреНрдд рддреБрдореНрд╣реА рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реА рдХрд╛рд░реНрдпреЗ рддрдкрд╛рд╕рдгреЗ.

рддреБрдореНрд╣реА рд╡реЗрдЧрд│реНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╡рд┐рд╡рд┐рдз рд╕реЗрдЯрд┐рдВрдЧреНрдЬ рджреЗрдЦреАрд▓ рдареЗрд╡реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рддреНрдпрд╛рдд рдЪреЕрдЯ рдЖрдпрдбреА рдЖрдгрд┐ рдЯреЛрдХрди рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░реВ рд╢рдХрддрд╛. рддреБрдореНрд╣реА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡рд╛рдЪреВ рд╢рдХрддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдкреЕрдХреЗрдЬ рд╡рд╛рдкрд░реВрди 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. рд╣реА рдлрд╛рдИрд▓ рдирд┐рдпрдорд┐рддрдкрдгреЗ рдЪрд╛рд▓рдгреНрдпрд╛рд╕рд╛рдареА рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдпрд╛ рдЪрд░рдгрд╛рдВрдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рд╛:

  1. рдкрд╛рде рд╕рд┐рд╕реНрдЯреАрдо рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓рдордзреНрдпреЗ рдЬреНрдпрд╛ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ R рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХреЗрд▓реЗ рдЖрд╣реЗ рддреНрдпрд╛ рдлреЛрд▓реНрдбрд░рдЪрд╛ рдорд╛рд░реНрдЧ рд▓рд┐рд╣рд╛; Windows рдордзреНрдпреЗ, рдкрде рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рдЕрд╕реЗрд▓: C:Program FilesRR-4.0.2bin.
  2. рдлрдХреНрдд рдПрдХрд╛ рдУрд│реАрдиреЗ рдПрдХ рдПрдХреНрдЭрд┐рдХреНрдпреВрдЯреЗрдмрд▓ рдмреЕрдЯ рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛ R CMD BATCH C:rscriptscheck_botcheck_bot.R. рдмрджрд▓рд╛ C:rscriptscheck_botcheck_bot.R рддреБрдордЪреНрдпрд╛ рдЖрд░ рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рдкреВрд░реНрдг рдорд╛рд░реНрдЧрд╛рд╡рд░.
  3. рдкреБрдвреЗ, рд▓реЙрдиреНрдЪ рд╢реЗрдбреНрдпреВрд▓ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рдВрдбреЛрдЬ рдЯрд╛рд╕реНрдХ рд╢реЗрдбреНрдпреБрд▓рд░ рд╡рд╛рдкрд░рд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рджрд░ рдЕрд░реНрдзреНрдпрд╛ рддрд╛рд╕рд╛рдиреЗ.

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

рдпрд╛ рд▓реЗрдЦрд╛рдд, рдЖрдореНрд╣реА рдмреЙрдЯ рдХрд╕рд╛ рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪрд╛ рдЖрдгрд┐ рдЯреЗрд▓реАрдЧреНрд░рд╛рдордордзреНрдпреЗ рд╡рд┐рд╡рд┐рдз рд╕реВрдЪрдирд╛ рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд╕рд╛ рдХрд░рд╛рдпрдЪрд╛ рддреЗ рд╢реЛрдзреВрди рдХрд╛рдврд▓реЗ.

рдореА рд╡рд┐рдВрдбреЛрдЬ рдЯрд╛рд╕реНрдХ рд╢реЗрдбреНрдпреБрд▓рд░рдЪреЗ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдХрд╛рд░реНрдпрд╛рдЪреЗ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрдкрдг рдпрд╛ рд▓реЗрдЦрд╛рддреАрд▓ рд╕рд╛рдордЧреНрд░реАрдЪрд╛ рд╡рд╛рдкрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕реВрдЪрдирд╛ рдкрд╛рдард╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рдХрд░реВ рд╢рдХрддрд╛, рд╣рд╡рд╛рдорд╛рди рдЕрдВрджрд╛рдЬрд╛рдкрд╛рд╕реВрди рд╕реНрдЯреЙрдХ рдПрдХреНрд╕рдЪреЗрдВрдЬрд╡рд░реАрд▓ рд╕реНрдЯреЙрдХ рдХреЛрдЯреНрд╕рдкрд░реНрдпрдВрдд, рдХрд╛рд░рдг R рддреБрдореНрд╣рд╛рд▓рд╛ рдореЛрдареНрдпрд╛ рд╕рдВрдЦреНрдпреЗрдиреЗ рдбреЗрдЯрд╛ рд╕реНрд░реЛрддрд╛рдВрд╢реА рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ.

рдкреБрдвреАрд▓ рд▓реЗрдЦрд╛рдд, рдЖрдореНрд╣реА рдмреЙрдЯрдордзреНрдпреЗ рдХрдорд╛рдВрдбреНрд╕ рдЖрдгрд┐ рдХреАрдмреЛрд░реНрдб рдХрд╕рд╛ рдЬреЛрдбрд╛рдпрдЪрд╛ рддреЗ рд╢реЛрдзреВрди рдХрд╛рдвреВ рдЬреЗрдгреЗрдХрд░реВрди рддреЗ рдХреЗрд╡рд│ рд╕реВрдЪрдирд╛рдЪ рдкрд╛рдард╡реВ рд╢рдХрдд рдирд╛рд╣реА рддрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХреНрд░рд┐рдпрд╛ рджреЗрдЦреАрд▓ рдХрд░реВ рд╢рдХреЗрд▓.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛