Как передать бота в телеграмме другому человеку
Боты для Telegram
Развивайте свой бизнес в одном из самых популярных мессенджеров
Боты для Insta
Увеличивайте количество подписчиков, вовлеченность и продажи с помощью бота
Интеграции
Сделайте бота функциональнее с помощью интегрированных сервисов
Как поменять владельца Telegram-бота
Осенью прошлого года случилось то, чего ждали многие — Telegram добавил в BotFather возможность смены владельца бота (а также другие изменения в Bot API).
Зачем и кому это нужно
Есть два самых частых сценария: передача бота заказчику от исполнителя и передача бота новому владельцу. Иногда этим пренебрегают, и случаются печальные ситуации: владелец перестает заходить в Телеграм и через год максимум его аккаунт удаляется вместе с ботом. Если повезет, то бот останется «сиротой»: работать продолжит, но как-либо отредактировать его не получится даже при помощи поддержки.
Как поступали раньше
Предыдущий владелец договаривался с новым о том, чтобы оперативно провернуть спецоперацию: удалить бота у себя в BotFather, чтобы новый владелец зарегистрировал такой же у себя. У такого подхода были два минуса: кто-то может охотиться за именем и успеть зарегистрировать его, пока он свободен; терялась база пользователей бота, а это допустимо только при передаче свежесделанного бота заказчику. Также можно было передавать бота вместе с телеграм-аккаунтом, но этот способ подходит далеко не всем.
Как теперь происходит передача
Должны выполняться следующие условия:
- Новый владелец должен написать хотя бы одно сообщение своему будущему боту (а также, скорее всего, не останавливать его после этого).
- У нового владельца должен быть свободный слот в BotFather (максимум разрешается иметь 20 ботов).
- Если у старого владельца включена двухфакторная авторизация, под рукой должен быть пароль (впрочем, если она выключена, то мы настоятельно рекомендуем прямо сейчас отложить чтение и включить ее).
Если они выполняются, пишите BotFather команду /mybots, выбирайте бота и жмите Transfer Ownership, а потом Choose recipient. Дальше отправляйте юзернейм нового владельца (с собачкой) или его контакт (работает со смартфона, не работает на клиенте для Mac).
Мы проверили два важных момента: токен и привязанный вебхук сохраняются (а это значит, что перенастройка ПО, будь то конструктор или что-то самописное, не потребуется); аудитория бота никуда не пропадает, новый владелец может с ней общаться, и вообще для пользователей бота ничего не изменится.
Смена владельца Telegram-бота
В Telegram боты привязаны к личному аккаунту создателя. Именно тот кто создавал бота через специальный бот @BotFather — является его владельцем по умолчанию.
Достаточно часто возникает необходимость передать права на управление ботом. Например, если вы нанимаете стороннего специалиста или ботами занимается ваш сотрудник, то можно временно передать права на бота, чтобы другой человек мог с ним работать не привлекая вас.
Важно! Если специалист или сотрудник заканчивает работу с вашими ботами, необходимо чтобы он вернул права вам. Иначе есть риск потерять всю базу подписчиков этого бота и контроль над ботом!
Инструкция по смене владельца
❗Важно! После смены владельца вы больше не сможете управлять ботом. Новый владелец получит доступ к сообщениям бота и другим данным – и даже сможет полностью удалить бота. Передавайте права только тому, кому доверяете.
Откройте Telegram, проверьте что выбран аккаунт, который является владельцем бота. Найдите бота @BotFather. Отправьте ему команду /mybots, чтобы увидеть список ваших ботов, и выберете нужный. Далее нажмите Transfer Ownership, затем Choose recipient. Введите имя пользователя Telegram, которому передаёте права. Далее подтвердите передачу нажав на Yes, I am sure, proceed.

Двухэтапная аутентификация
Если у вас не включена двухэтапная аутентификация минимум неделю назад или вы недавно вошли в аккаунт с этого устройства, то Telegram не позволит передать права:

Для включения двухэтапной аутентификации нажмите на кнопку Задать пароль в появившемся окне:

Придумайте и повторите пароль, укажите почту для восстановления и подсказку для пароля.

Введите код, который придёт на указанный email. Нажмите Подтвердить. Двухэтапная аутентификация включена. Чтобы передать права на бота, необходимо подождать 7 дней.
Если вы не нашли ответ на свой вопрос, задайте его нам в чате внутри кабинета либо напишите на hello@bothelp.io
Получите 14 дней полного функционала платформы для создания рассылок, автоворонок и чат-ботов BotHelp.
Как передать владельца в Telegram
Как передать права владельца чата в Телеграм? Для этого можно пойти двумя путями. Первый — отдать доступ к аккаунту и изменить номер. Вместе с ним переходят все каналы, чаты и контакты. Второй — назначить нового администратора и изменить собственника. Ниже рассмотрим принципы и особенности передачи полномочий в мессенджере.
Как передать права в Телеграм
Многие интересуются, как передать права владельца канала в Телеграмме, чтобы дать все полномочия новому человека. В таком случае может потребоваться переоформление аккаунта пользователя и перенос данных на другую SIM-карту. Алгоритм действий в этом случае следующий:
- Войдите в мессенджер.
- Жмите на три полоски слева.
- Перейдите в «Настройки».
- А затем «Изменить профиль».

- Кликните на телефонный номер.

- Жмите на «Сменить номер» и следуйте инструкции.

Н этом этапе нужно указать телефон нового собственника, который должен подтвердить принятие аккаунта в Телеграм.
Отметим, что таким способом передается весь профиль со всеми чатами, контактами, группами и т. д. При этом важно, чтобы телефон нового собственника находился в той же стране, ведь в ином случае будет появляться ошибка.
Как сделать человека администратором и владельцем
В большинстве случаев не нужно менять собственника 100% аккаунта — достаточно знать, как передать права администратора Telegram. После недавнего обновления пользователям стала доступна такая опция на смартфонах с Андроид и iOS. При этом можно без смены владельца профиля передать полномочия на ведения группы / канала другому человеку (по желанию).
Перед тем как передать чат другому владельцу в Телеграм, необходимо проверить соблюдение следующих условий:
- Аутентификация включена более чем неделю назад. Для ее включения зайдите в «Настройки», перейдите в «Конфиденциальность и безопасность», а после этого включите «Двухэтапную проверку».
- Вы должны зайти в аккаунт на этом устройстве не позднее, чем 24 часа назад.

После этого можно разбираться, как передать чат другому владельцу с предоставлением полномочий админа.
Для передачи прав на чат сделайте следующее:
- Войдите в Телеграм.
- Кликните на канал, для которого вы планируете поменять владельца.

- Кликните на имя и «Изменить» (символ карандаша).
- Войдите в «Администраторы» и «Добавить администраторов».
- Выберите участника, которую нужно передать права владельца чата.
- Кликните на переключатель «Добавить новых …».
- Кликните «Изменить владельца».
- Введите пароль для 2-этапной проверки.
Рассмотренный выше способ можно использовать, чтобы передать права другому админу у канала и группы. Алгоритм действий в обоих случаях аналогичный.
Что делать, если владелец вышел
В Сети встречается много вопросов, как админу выйти из группы, и можно ли это сделать. Для достижения нужного результата необходимо сначала назначить администратора, а уже потом покинуть сообщества. Чтобы передать права, сделайте следующее:
- Войдите в группу в Телеграмм.
- Кликните на ее название.

- Жмите на символ карандаша справа вверху.
- Кликните на «Администраторы».
- Жмите «Добавить …».
- Укажите права нового пользователя.
- Жмите на галочку.
- Покиньте чат.
Если админ покинул чат, но не передал права владельца / администратора другому человеку, группа / канал в Телеграм может продолжить существование. Для этого при выходе не нужно ставить отметку об удалении сообщества у всех участников.
Теперь вы знаете, как отдать права собственника чата в Телеграм, что для этого необходимо, и можно ли пользоваться сообществом без админа. В комментариях расскажите, пригодились ли вам приведенные рекомендации, и какие еще имеются варианты.
Глава 1 Создаём бота, и отправляем с его помощью сообщения в telegram
В этой главе мы разберёмся как создать телеграм бота, и отправлять с его помощью уведомления в telegram.
1.1 Создание телеграм бота
1.1.1 Видео урок о создании telegram бота через BotFather
1.1.2 Конспект о создании telegram бота через BotFather
Для начала нам необходимо создать бота. Делается это с помощью специального бота BotFather, переходим по ссылке и пишем боту /start .
После чего вы получите сообщение со списком команд:
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 .
Более подробно о возможностях BotFather можно узнать из этой публикации. На этом шаге подготовительные работы по созданию бота завершены.
1.2 Установка пакета для работы с телеграм ботом на R
Я предполагаю, что у вас уже установлен язык R, и среда разработки RStudio. Если это не так, то вы можете посмотреть данный видео урок о том, как их установить.
Для работы с Telegram Bot API мы будем использовать R пакет telegram.bot.
Установка пакетов в R осуществляется функцией install.packages() , поэтому для установки нужного нам пакета используйте команду install.packages(«telegram.bot») .
Более подробно узнать об установке различных пакетов можно из этого видео.
После установки пакета его необходимо подключить:
library(telegram.bot)
1.3 Отправка сообщений из R в Telegram
Созданного вами бота можно найти в Telegram по заданному при создании логину, в моём случае это @my_test_bot .
Отправьте боту любое сообщение, например “Привет бот”. На данный момент это нам надо для того, что бы получить id вашего с ботом чата.
Теперь в 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(«~») ) текстовый файл с названием .Renviron. Сделать это также можно с помощью команды 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() , в который необходимо передать идентификатор чата, текст сообщения, и тип разметки текста сообщения. Тип разметки может быть Markdown или HTML и устанавливается аргументом parse_mode .
# Отправка сообщения bot$sendMessage(chat_id, text = "Привет, *жирный текст* _курсив_", parse_mode = "Markdown" )
Если вам необходимо отправить сообщение от бота не в чат, а в публичный канал, то в chat_id указывайте адрс вашего канала, например ‘@MyTGChannel’ .
При необходимости отправить сообщение в приватный канал, вам необходимо скопировать ссылку на любое сообщение данного канала, из ссылки получить его идентификатор, и к этому идентификатору добавить -100.

Соответвенно, к id 012345678 вам необходимо добавить -100, в таком случае в chat_id надо указать -100012345678.
Основы форматирования Markdown разметки:
- Жирный шрифт выделяется с помощью знака *:
- пример: *жирный шритф*
- результат: жирный шритф
- пример: _курсив_
- результат: курсив
- пример: `моноширинный шрифт`
- результат: моноширинный шрифт
Основы форматирования HTML разметки:
В HTML вы заворачиваете часть текста, которую надо выделать, в теги, пример <тег>тексттег> .
- — открывающий тег — закрывающий тег
Теги HTML разметки
- — жирный шрифт
- пример: жирный шрифт
- результат жирный шрифт
- пример: курсив
- результат: курсив
- пример: моноширинный шрифт
- результат: моноширинный шрифт
Помимо текста вы можете отправлять и другой контент используя специальные методы:
# Отправить изображение 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 .
Помимо отправки данных бот имеет и ряд других методов:
- deleteMessage() — Удалить сообщение
- editMessageText() — Редактирвать текст сообщения
- editMessageCaption() — Редактировать описание изображения, файла и т.д.
- forwardMessage() — Переслать сообщение
- getFile() — Подготовка файла к скачиванию
- getMe() — Получить информацию о боте
- getUpdates() — Получить список обновлений бота
- getUserProfilePhotos() — Получить аватар пользователя
- leaveChat() — Выйти из группы
- clean_updates() — Очистить очередь обновлений
1.4 Как отправить в telegram таблицу
К сожалению на момент написания книги telegram не поддерживает полноценные таблицы в HTML или Markdown, но вы можете иметировать подобие таблицы. Для этого воспользуйтесь кодом представленной ниже функции to_tg_table() :
library(purrr) library(tidyr) library(stringr) # функция для перевода data.frame в telegram таблицу to_tg_table function( table, align = NULL, indents = 3, parse_mode = 'Markdown' ) # если выравнивание не задано то выравниваем по левому краю if ( is.null(align) ) col_num length(table) align str_c( rep('l', col_num), collapse = '' ) > # проверяем правильно ли заданно выравнивание if ( length(table) != nchar(align) ) align NULL > # новое выравнивание столбцов side sapply(1:nchar(align), function(x) letter substr(align, x, x) switch (letter, 'l' = 'right', 'r' = 'left', 'c' = 'both', 'left' ) >) # сохраняем имена t_names names(table) # вычисляем ширину столбцов names_length sapply(t_names, nchar) value_length sapply(table, function(x) max(nchar(as.character(x)))) max_length ifelse(value_length > names_length, value_length, names_length) # подгоняем размер имён столбцов под их ширину + указанное в indents к-во пробелов t_names mapply(str_pad, string = t_names, width = max_length + indents, side = side) # объединяем названия столбцов str_names str_c(t_names, collapse = '') # аргументы для фукнции str_pad rules list(string = table, width = max_length + indents, side = side) # поочереди переводим каждый столбец к нужному виду t_str pmap_df( rules, str_pad )%>% unite("data", everything(), remove = TRUE, sep = '') %>% unlist(data) %>% str_c(collapse = '\n') # если таблица занимает более 4096 символов обрезаем её if ( nchar(t_str) >= 4021 ) warning('Таблица составляет более 4096 символов!') t_str substr(t_str, 1, 4021) > # символы выделения блока кода согласно выбранной разметке code_block switch(parse_mode, 'Markdown' = c('```', '```'), 'HTML' = c('')) # переводим в code res str_c(code_block[1], str_names, t_str, code_block[2], sep = '\n') return(res) >', 'С помощью этой функци вы можете преобразовать любой data.frame и отправить в telegram:
# преобразуем таблицу iris tg_table to_tg_table( head(iris, 15) ) # отправляем таблицу в telegram bot$sendMessage(194336771, tg_table, "Markdown")
В telegram это буедет выглядеть так:
У функции to_tg_table() есть несколько дополнительных аргументов:
- align — выравнивнивание столбцов, тектовая строка, каждая буква соответвует одному столбцу, пример ‘llrrc’ :
- l — выравнивание по левой стороне
- r — выравнивание по правой стороне
- c — выравнивание по центру
Пример с выравниванием столбцов:
# преобразуем таблицу iris tg_table to_tg_table( head(iris, 15), align = 'llccr') # отправляем таблицу в telegram bot$sendMessage(194336771, tg_table, "Markdown")
1.5 Как добавить в сообщение Emoji
Требования к телеграм ботам могут быть разные, в том числе заказчик может попросить вас добавить в сообщения бота какие то Emoji.
Получить полный список доступных смайлов можно по этой ссылке.

Из таблицы нас интересует поле Unicode. Скопиройте код нужного вам смайла, и замените U+ на \U000 . Т.е. если вам необходимо отправить смайл, код котого в таблице U+1F601 , то в коде на R вам необходимо добавить его в текст сообщения вот так — \U0001F601 .
bot$sendMessage(chat_id, 'Сообщение со смайлом \U0001F601 код которого в таблице U+1F601')
Результат:
1.6 Проверка планировщика задач Windows, и отправка уведомления о задачах, работа которых была завершена аварийно
1.6.1 Видео урок о разработке бота для контроля планировщика заданий
1.6.2 Конспект о разработке бота для контроля планировщика заданий
Для работы с планировщиком заданий Windows вам необходимо установить пакет 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 у нас теперь список задач, работа которых завершилась ошибкой, этот список нам надо отправить в Telegram.
Если рассмотреть каждую команду подробнее, то:
- 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 .
[telegram_bot] ;настройки телеграм бота и чата, в который будут приходить уведомления chat_id=12345678 bot_token=123456789:abcdefghijklmnopqrstuvwxyz"library(configr) # чтение конфина config read.config('C:/путь_к_конфигу/config.cfg', rcmd.parse = TRUE) bot_token config$telegram_bot$bot_token chat_id config$telegram_bot$chat_id1.7 Настраиваем расписание запуска проверки задач
Наиболее подробно процесс настройки запуска скриптов по расписанию описан в этой статье . Тут я лишь опишу шаги, которые для этого необходимо выполнить. Если какой-то из шагов вам не понятен, то обратитесь к статье на которую я указал ссылку.
Предположим, что мы сохранили код нашего бота в файл check_bot.R . Для того, что бы запланировать регулярный запуск этого файла выполните следующие шаги:
- Пропишите в системную переменную Path путь к папке в которой установлен R, в Windows путь будет примерно таким: C:\Program Files\R\R-4.0.2\bin .
- Создайте исполняемый bat файл, в котором будет всего одна строка R CMD BATCH C:\rscripts\check_bot\check_bot.R . Замените C:\rscripts\check_bot\check_bot.R на полный путь к вашему R файлу.
- Далее настройте с помощью планировщика задач Windows расписание запуска, например на каждые пол часа.
1.8 Заключение
В этой главе мы разобрались с тем, как создать бота, и отправлять с его помощью различные уведомления в telegram.
Я описал задачу контроля планировщика заданий Windows, но вы можете использовать материал этой главы для отправки любых уведомлений, от прогноза погоды до котировок акций на фондовой бирже, т.к. R позволяет вам подключиться к огромному количеству источников данных.
В следующей главе мы с вами разберёмся с тем, как добавить боту команды и фильтры сообщений, для того, что он мог не только отправлять уведомления, но и выполнять более сложные действия.
1.9 Тесты и задания
1.9.1 Тесты
Для закрепления материла рекомендую вам пройти тест доступный по ссылке.
1.9.2 Задания
- Создайте с помощью BotFather бота.
- Перейдите к диалогу с ботом, и узнайте идентификатор вашего с ботом чата.
- Отправьте с помощью созданного бота в telegram первые 20 строк из встроенного в R набора данных ToothGrowth .

Если вы всё сделали правильно то результат будет следующим:
