Создание Телеграм бота сейчас: бессерверный подход


Часть перевода статьи, опубликованной тут


Тридцать лет назад я жил в Финляндии, где в то время текстовые сообщения были основным способом общения. Это не совпадение, учитывая, что именно финн Яркко Оикаринен создал глобальную чат-систему IRC, которая живет и продолжает процветать по сей день. Американцам и остальному миру понадобится еще 12/15 лет, прежде чем они перейдут на текстовые сообщения, с появлением доступных SMS.

Сегодня существует множество платформ обмена мгновенными сообщениями, таких как Signal, известными благодаря поддержке Эдварда Сноудена, швейцарской компании Wire, Facebook’s WhatsApp, очень скрытных Wickr, WeChat и многих других.

Из всех этих систем только Telegram, насчитывающий, по последним подсчетам, 200 миллионов активных пользователей в месяц, предлагает что-то, что существовало в мире IRC с момента его создания: программируемость, то есть любой может написать «бот» — программный модуль, с которым можно общаться в чате.

Думайте о ботах как о личных агентах, которые способствуют определенному интересу или деятельности

Почему это полезно? Учтите, что боты могут использоваться для обогащения дискурса, выступая в качестве источника информации, чтобы помочь интегрировать многоязычные системы, предоставляя интерфейс на естественном (для пользователя) языке, принимать или предоставлять оплату за услуги, и в целом рассматривать столько вариантов использования, сколько потребуется.

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

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

Создание вашего первого бота

Давайте начнем с самого начала. Для создания бота вам необходимо установить приложение Telegram. Когда вы получите учетную запись, вам нужно будет попросить BotFather создать своего бота. Сначала найдите его, введя его имя в поле поиска Telegram, а затем нажмите на список:

Затем нажмите представленную кнопку Start; это отобразит команды, которые принимает BotFather. Чтобы создать своего бота, введите в текстовое поле:

/newbot

и BotFather спросит, как вы хотите назвать бота и имя пользователя, чтобы назначить его — имя пользователя должно заканчиваться суффиксом _bot.. Для этого урока мы будем называть бота «Тестовым Telegram ботом» с именем пользователя the_test_telegram_bot, (вы можете выбрать любое своё название, которое имеет для вас смысл).

Затем BotFather сгенерирует ключ API, который будет похож на приведенный ниже:

735246361: AAFLPovGMjh6lKXENaCyczHyLqwPGH0EDns

Вам нужно будет защитить этот ключ и сохранить его в секрете, так как любой с ним может контролировать вашего бота!

Теперь введите имя вашего бота в поле поиска и, когда вы найдете его, нажмите на него, а затем нажмите кнопку Start:

Пока ничего не случится. Вы можете напечатать «привет», «grüßen» или «привет и приветствие», но бот не сочтет нужным поговорить с вами.

Проблема в том, что боты являются составными. Telegram предоставляет интерфейс (фронтенд), механизм в своем приложении для ведения разговора, но вы должны предоставить информацию о поведении бота. Так что в настоящее время ваш бот «не слышит» вас и ему нечего ответить.

Мы исправим это с помощью кода

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

Существует также проблема того, на каком языке программирования описывать это поведение

Пример кода существует для PHP, Java, C #, Lua, Python, Ruby, Go, Haskell, Scala и так далее, и если вы хорошо разбираетесь в любом из них, вы можете прекратить чтение сейчас и перейти к другому учебнику.

В этой статье мы будем использовать популярный язык Javascript, реализованный в движке NodeJ, но, что более важно, развернутый на бессерверной платформе с использованием микро-сервисной архитектуры

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

Так о чем конкретно беспокоиться? Бизнес-логика — то, что вы хотите сделать

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

Продолжение на сайте


Comments 1