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

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

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

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ рдмрдЯ рдорд╛рд░реНрдлрдд рдХреБрдиреИ рдкрдирд┐ рдЕрдкрд░реЗрд╢рдирд╣рд░реВ рдЧрд░реНрди рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ: рдбреЗрдЯрд╛ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН рд╡рд╛ рдЕрдиреБрд░реЛрдз рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд╕рд░реНрднрд░рдорд╛ рдХрд╛рд░реНрдпрд╣рд░реВ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН, рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЗрдореЗрд▓рд╣рд░реВ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН, рд░ рдпрд╕реНрддреИред

рдорд╕рдБрдЧ рдХрд╕рд░реА рдХрд╛рдо рдЧрд░реНрдиреЗ рднрдиреНрдиреЗ рдмрд╛рд░реЗ рд▓реЗрдЦрд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓реЗрдЦреНрдиреЗ рдпреЛрдЬрдирд╛ рдЫ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ API, рд░ рдЖрдлреНрдиреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрдиреБрд░реВрдк рдмрдЯ рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реНред

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

рдпрд╕ рдкрд╣рд┐рд▓реЛ рд▓реЗрдЦрдорд╛ рд╣рд╛рдореА рдХрд╕рд░реА рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд░ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрдиреЗрдЫреМрдВред

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

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

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

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

  1. рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ
  2. R рдорд╛ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ
  3. R рдмрд╛рдЯ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрдБрджреИ
  4. рдХрд╛рд░реНрдп рд╕реНрдХреНрдпрд╛рди рдЪрд▓рд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрдЯ рдЕрдк рдЧрд░реНрджреИ
  5. рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдо рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

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

  1. рдкрде рдкреНрд░рдгрд╛рд▓реА рдЪрд░рдорд╛ R рд╕реНрдерд╛рдкрдирд╛ рднрдПрдХреЛ рдлреЛрд▓реНрдбрд░рдорд╛ рдкрде рд▓реЗрдЦреНрдиреБрд╣реЛрд╕реН; рд╡рд┐рдиреНрдбреЛрдЬрдорд╛, рдкрде рдпрд╕ рдкреНрд░рдХрд╛рд░рдХреЛ рд╣реБрдиреЗрдЫ: C:Program FilesRR-4.0.2bin.
  2. рдХреЗрд╡рд▓ рдПрдХ рд▓рд╛рдЗрди рд╕рдВрдЧ рдПрдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдпреЛрдЧреНрдп рдмреНрдпрд╛рдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН R CMD BATCH C:rscriptscheck_botcheck_bot.Rред рдмрджрд▓реНрдиреБрд╣реЛрд╕реН C:rscriptscheck_botcheck_bot.R рддрдкрд╛рдИрдВрдХреЛ R рдлрд╛рдЗрд▓рдХреЛ рдкреВрд░реНрдг рдорд╛рд░реНрдЧрдорд╛ред
  3. рдЕрд░реНрдХреЛ, рдкреНрд░рдХреНрд╖реЗрдкрдг рддрд╛рд▓рд┐рдХрд╛ рд╕реЗрдЯрдЕрдк рдЧрд░реНрди Windows Task Scheduler рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣рд░реЗрдХ рдЖрдзрд╛ рдШрдгреНрдЯрд╛ред

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

рдпрд╕ рд▓реЗрдЦрдорд╛, рд╣рд╛рдореАрд▓реЗ рдХрд╕рд░реА рдмреЛрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ рд░ рдЯреЗрд▓рд┐рдЧреНрд░рд╛рдордорд╛ рд╡рд┐рднрд┐рдиреНрди рд╕реВрдЪрдирд╛рд╣рд░реВ рдкрдард╛рдЙрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреМрдВред

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

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

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

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