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


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


Тридцать лет назад я жил в Финляндии, где в то время текстовые сообщения были основным способом общения. Это не совпадение, учитывая, что именно финн Яркко Оикаринен создал глобальную чат-систему 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


@dmitry2045, поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:

Вы опубликовали свой первый пост
Вы получили первый голос за ваши посты
Награда за количество полученных голосов

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

Вам нравится проект Доска Почета? Проголосуйте за делегата @golosboard, и вы получите еще одну награду!

24.02.2019 06:37
0
My pageSettingsLogout
Cancel Confirm
100%
Cancel Confirm
Cancel Confirm