Вы находитесь на странице: 1из 14

ОЛЕГ АГЕЕВ

Telegram-бот
за 1 час С НУЛЯ
Пошаговая инструкция
создания и запуска бота

НАУЧИСЬ СОЗДАВАТЬ ПО
И НАЧНИ ЗАРАБАТЫВАТЬ
НА СВОИХ ЗНАНИЯХ

The most popular secure messenger in the world


Telegram-бот за 1 час. пошаговая инструкция олег агеев

Об авторе

Привет, меня зовут Олег!


Мой опыт - это 15 лет работы программистом в web-
разработке, в основном в стартапах, разрабатывавших
мобильные приложения, агрегаторы, партнерские
программы, соцсети и финтех. Я писал и проектировал
код, управлял командами других айтишников и
занимался набором персонала. За это время я подробно
и с разных сторон изучил, как устроены IT-компании
небольшого размера (от 5 до 700 человек).

Затем я понял, что у меня есть потребность делиться


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

Мой подход к общению - это дружелюбие, честность и


открытость. Мне можно без боязни задавать "глупые" вопросы, я
люблю на них отвечать :) На самом деле глупых вопросов не бывает, а
понятный и четкий ответ может эффективно повлиять на
представление собеседника о фундаментальных вещах.

Я помогаю новичкам успешно влиться в IT-индустрию и


освоиться в ней. С более опытными людьми я могу поделиться
техниками достижения различных карьерных целей. Если тебе
интересно, как научиться работать эффективнее, добиться уважения
коллег и сообщества, плодотворно с ними общаться или заработать
больше денег, то мне наверняка будет чем с тобой поделиться.

Полезная инструкция? Поделись с друзьями! 3


Пошаговая инструкция
создания и запуска чат-бота

Об авторе
СОДЕРЖАНИЕ

Вступление

Регистрация бота

Настройка сервера и базы данных

Полноценный Telegram-бот
Telegram-бот за 1 час. пошаговая инструкция олег агеев

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


сложно. Кто-то говорит, что 21, кто-то – 66. По моему опыту, все зависит от
множества субъективных факторов: сложность и важность для тебя этой
привычки, склонности твоего мозга менять себя, твое самочувствие и
здоровый сон. Так что тут стоит полагаться на личные наблюдения за
особенностями своей нейронной сети.

Есть психологический прием, предназначенный для облегчения


встраивания привычек – это использование так называемых трекеров. Они
представляют собой что-то вроде календарей, в которых ты ежедневно
отмечаешь свой прогресс. Их польза основана на ряде хитростей, из-за
которых мозг воспринимает происходящее как игру. Каждая очередная
отметка вбрасывает дозу приятных гормонов. Когда ты наглядно видишь,
как много дней продержался, появляются силы не сорваться из-за
минутной слабости.

Основываясь на этой идее, я решил сделать бота, который будет


ежедневно спрашивать тебя, поддержал(а) ли ты сегодня свою привычку,
выполнив поставленную лично себе задачу. Он будет вести учет твоего
прогресса и подбадривать тебя. Важный бонус по сравнению с другими
подобными приложениями: оно будет лично твое, и при некоторых
навыках программирования ты сможешь доработать его, чтобы оно в
точности соответствовало твоим потребностям.

Для обеспечения работоспособности бота и сохранности данных мы


будем использовать сервис Spreadsheet от Google. Он весьма удобный,
понятный, безопасный, надежный и при этом бесплатный. Для серьезных
коммерческих проектов его возможностей будет, конечно, маловато, но
для небольших личных проектов это отличный выбор.

Итак, приступим!

Полезная инструкция? Поделись с друзьями! 5


Telegram-бот за 1 час. пошаговая инструкция олег агеев

Вступление

Этот демонстрационный курс поможет примерно за полчаса создать


собственного Telegram-бота и использовать только бесплатные
инструменты. При создании курса я хотел показать, что создавать
полезные и классные приложения становится все проще. Это доступно
любому человеку с начальными навыками программирования, а порой и
вовсе без них. Например, уметь программировать в этом курсе не нужно,
главное – быть внимательным. И уметь искать правильную информацию.
Раз ты смог(ла) найти мой курс, с этим у тебя, очевидно, все в порядке ;)

Мне совершенно не хотелось предлагать тебе очередное


бессмысленное Hello world-приложение. Я долго думал, какой бот был бы
интересен и полезен для большинства. Так как я стараюсь писать для
людей, интересующихся саморазвитием, я решил сделать бота, который
будет помощником в приобретении новых привычек.

Если ты хочешь с завтрашнего дня приобрести новую полезную


привычку, недостаточно просто решить это сделать. Механизмы наших
нейронных сетей таковы, что любые серьезные изменения для них очень
утомительны. Мозг будет постоянно уговаривать тебя бросить трудное
занятие, находя море "веских причин". Особенно трудно в первые дни.
Однако если ты не будешь поддаваться на провокации и ежедневно
заниматься новым делом, то постепенно нейронные пути начнут
укрепляться – привычка начнет формироваться. Мозг будет оказывать все
меньшее сопротивление. Однако стоит пропустить день-два, и еще
нестойкие связи нейронов начнут быстро рассыпаться. После таких
пропусков вернуться в русло привычки довольно трудно. Поэтому важно
продержаться определенное число дней, дав привычке окончательно
сформироваться, после чего она станет для тебя естественной и важной
потребностью, а необходимость заставлять себя уйдет.

Полезная инструкция? Поделись с друзьями! 4


Telegram-бот за 1 час. пошаговая инструкция олег агеев

Регистрация бота

Сначала нам надо зарегистрировать бота в Telegram.


Просто выполняй следующие шаги:

1. Открой в телеграме @BotFather и нажми Start

2. Отправь боту команду /newbot

3. Тебя попросят ввести имя твоего нового бота. Оно будет


отображаться в заголовке на странице будущего бота.

4. После имени надо ввести username бота. По юзернейму можно


будет найти его, добавив в начале @ (в самом имени символ @ не
нужен). Придумай имя на английском. Постарайся, чтобы имя было не
длиннее 3 слов (разделяй слова символом подчеркивания _, пробелы в
юзернейме запрещены) и отражало суть создаваемого бота. В конце
добавь _bot или Bot

5. Крестный отец ботов поздравит тебя с созданием нового бота и


выдаст строку с секретным ключом (он подсвечен цветом). Сохрани его в
заметки, он нам скоро понадобится.

6. Перейди на страницу созданного бота. Нажми Start. Это отправит


боту команду /start. Но пока он не знает, как ее обрабатывать, поэтому
ничего не произойдет.

Таким образом, мы зарегистрировали Telegram-бота. Это точка входа


пользователя в будущее приложение; другими словами, клиентская часть
приложения или просто клиент. Чтобы бот мог что-то делать, нужна
серверная часть, обрабатывающая передаваемые с клиента запросы
пользователя и возвращающая ответы на эти запросы. Сейчас мы
привяжем бота к серверам Google.

Полезная инструкция? Поделись с друзьями! 6


Telegram-бот за 1 час. пошаговая инструкция олег агеев

Настройка сервера
и базы данных

Теперь настраиваем таблицу Google, в которой мы будем хранить


наши данные. Для этого у тебя должен быть зарегистрированный и
залогиненный гугловский аккаунт.

1. Заходи на https://drive.google.com

2. Нажми Создать (New) и выбери Google таблицы -> Создать


пустую таблицу (Google Docs -> Blank document)

3. В открывшейся таблице создай еще один лист (нажми в левом


нижнем углу на +). Назови листы Days и Settings.

Полезная инструкция? Поделись с друзьями! 7


Telegram-бот за 1 час. пошаговая инструкция олег агеев

4. На листе Days в первой строчке введи названия колонок: day и


completed. Здесь будет история: каждый день будет добавляться новая
дата и отметка о том, выполнил ли ты условия для приобретения новой
привычки.

5. Лист Settings заполни следующим образом:

Это таблица настроек приложения. В первой колонке – название


настройки, во второй – ее значение. Здесь message_time установлено на
23 часа 0 минут. В это время тебе будет приходить вопрос от бота.
habit_desc – твоя ежедневная задача. habit_duration – количество дней,
которые нужно продержаться. Все значения ты можешь менять по своему
усмотрению.

Полезная инструкция? Поделись с друзьями! 8


Telegram-бот за 1 час. пошаговая инструкция олег агеев

6. Назови таблицу как-нибудь, чтобы не потерять, например, My


Habits

7. Зайди в меню Инструменты (Tools), выбери Редактор скриптов


(Script Editor)

8. Откроется среда разработки Google Script. Код в основном поле


меняем на другой код, который копируем отсюда:
https://github.com/ittheredpill/tg-bot-course-habit-
tracker/blob/master/code.gs

9. Назови проект

10. Теперь необходимо задать пару приватных переменных:


API_TOKEN и ADMIN_CHAT_ID

API_TOKEN – секретный ключ (токен), выданный ранее BotFather-ом


ADMIN_CHAT_ID – твой Id в Telegram. Его можно узнать у этого бота
– @userinfobot.

Чтобы установить переменные, заходи в Свойства проекта (Project


properties). Найти их можно в меню Файл (File). В открывшемся окне
перейди на вкладку Script properties (Свойства скрипта), затем жми +
Добавить строку (+ Add row) и заполни название переменной и ее
значение. Сохрани.

Полезная инструкция? Поделись с друзьями! 9


Telegram-бот за 1 час. пошаговая инструкция олег агеев

11. Приложение использует библиотеку Sheetfu


https://github.com/socialpoint-labs/sheetfu-apps-script предназначенную для
упрощения работы с таблицами. Посмотри документацию библиотеки. В
конце страницы ты найдешь инструкцию по ее установке в приложение
(раздел Installation): для этого надо зайти в редакторе кода в меню
Ресурсы -> Библиотеки (Resources -> Libraries), добавить ключ библиотеки
из документации (на данный момент ключ
1N8BGDNX4N64WP4HRjsnZJNwBx2UrAbc_DPZKYwFnVxqzeJdqEJQuCBSv,
но он может измениться), выставить последнюю версию. Должно
получиться вот так:

12. Теперь надо опубликовать наше приложение, чтобы к нему был


доступ из интернета. Выбираем в меню Опубликовать -> Развернуть как
веб-приложение (Publish -> Depoly as web app...), в появившемся окне
вводим название проекта. Затем появится окно с настройками публикации.
Выставляем опции Who has access to the app в значение Anyone, even
anonymous. Таким образом, мы разрешим обращаться к нашему
приложению без ограничений. Жмем Deploy.

Полезная инструкция? Поделись с друзьями! 10


Telegram-бот за 1 час. пошаговая инструкция олег агеев

13. Тут должно появиться еще одно окно с требованием


разрешения. Дело в том, что наше приложение пока не допущено к работе
с таблицами. Именно это разрешение ему необходимо выдать. Нажимаем
Предоставить разрешение и выбираем аккаунт, с помощью которого будет
осуществлен доступ. Могут появиться такие окошки:

Жмем тут Дополнительные настройки (Advanced), получаем вот это:

Полезная инструкция? Поделись с друзьями! 11


Telegram-бот за 1 час. пошаговая инструкция олег агеев

Тут жмем Перейти на страницу ТВОЙ_ПРОЕКТ (небезопасно) (Go to


ТВОЙ_ПРОЕКТ (unsafe)) и переходим на новое окно, в котором надо
нажать кнопку Разрешить (Allow).
После выдачи разрешения появится окно с надписью This project is
now deployed as a web app и адресом созданного приложения вида
https://script.google.com/macros/s/AKfycbz6S7eB5Wj8QGNUumbyxeKx8EU-
QbQGzOygwUJ6rrgKOVKHX98/exec. Скопируй (убедись, что он скопирован
полностью: начинается всегда на https и заканчивается на exec) и сохрани
в заметки этот адрес.

14. Теперь необходимо привязать нашего бота к приложению. Для


этого открой текстовый редактор и составь строку по следующему
шаблону:
https://api.telegram.org/botAPI_TOKEN/setWebHook?url=WEB_APP_URL

Вместо API_TOKEN подставь секретный ключ бота, вместо


WEB_APP_URL – полученный в предыдущем пункте адрес приложения.
Получится примерно так:
https://api.telegram.org/bot963799417:AAF3YkGcpSQeW0JI2QCIPGtMtGd2Rd
4IK5E/setWebHook?url=https://script.google.com/macros/s/AKfycbzFy8jqH6X8
Mf9WQFgUE-grr0EoWtDWBeN3vxDZPpPER7XmjsSr/exec

Скопируй адрес в адресную строку браузера и перейди по нему. В


ответ должно прийти следующее:
{"ok":true,"result":true,"description":"Webhook was set"}

15. Открой в Telegram своего бота и снова отправь команду /start. В


ответ должно прийти сообщение с заданием и временем отчета по нему.
Если это произошло, поздравляю, теперь бот имеет надежную серверную
основу!
Если текст не приходит, проверь, что ты ничего не пропустил(а) в
настройке.

16. Осталось создать триггер, который будет отправлять сообщение


по таймеру. Нажимай на кнопку с часами в панели инструментов:

Полезная инструкция? Поделись с друзьями! 12


Telegram-бот за 1 час. пошаговая инструкция олег агеев

На открывшейся странице жмем Добавление триггера (+ Add


Trigger) и в открывшемся диалоговом окне выставляем параметры:

Тут я выставил значения так, чтобы каждую минуту срабатывал


триггер, вызывая функцию jobSendMessage. Она будет проверять, не пора
ли отправить ежедневный вопрос, и отправлять, если пора. Сохрани
триггер.

17. Чтобы протестировать бота прямо сейчас, вернись в Google-


таблицу, зайди на лист Settings и поменяй настройку message_time на
время немного раньше, чем текущее в том месте, где ты находишься.
Вскоре должен прийти вопрос от бота.

Полезная инструкция? Поделись с друзьями! 13


Telegram-бот за 1 час. пошаговая инструкция олег агеев

Полноценный
Telegram-бот
Подведем итоги.
Теперь у тебя есть полноценный Telegram-бот, которого ты можешь
использовать в повседневной жизни. Если ты немного знаком(а) с языком
JavaScript, можешь при желании доработать код так, как посчитаешь
нужным.

Надеюсь, тебе понравился этот небольшой мастер-класс, и создание


собственных приложений стало для тебя значительно более понятным и
доступным процессом. Если тебе интересно более подробно изучить
связку Telegram + Google Spreadsheets, у меня есть полный курс на эту
тему. В нем я намного подробнее разбираю методы создания ботов,
начиная с идеи приложения и заканчивая тестированием готового бота. В
курс включена моя помощь, а также возможность общаться с другими
участниками. Для создания собственного бота от тебя потребуется интерес
и целеустремленность, а всю необходимую информацию я обещаю
предоставить. Для полноценного использования курса тебе понадобится
некоторый опыт в программировании. Если ты умеешь программировать,
но никогда не занимался(лась) этим профессионально, то курс тебе
подойдет идеально, так как в нем я делал упор на погружение в важнейшие
навыки программиста и объяснение основных рабочих процессов в IT-
командах. Если программировать пока не умеешь, могу научить.
Эффективно, практично и недорого.

Присылай свои идеи как улучшить этот мастер-класс, а также вопросы,


пожелания или предложения, в телеграм – @ageevolegv или на почту
ittheredpill@gmail.com

Желаю успехов!

Полезная инструкция? Поделись с друзьями! 14

Вам также может понравиться