Как создать бота в Telegram
Что нужно знать, прежде чем создавать бота в Telegram
Боты являются своего рода программами, которые умеют выполнять разные функции — от предоставления информации до управления устройствами — и работают прямо в мессенджере.
Взаимодействие осуществляется как с помощью заранее заготовленного набора команд, так в виде живого общения. В зависимости от возлагаемых на бота задач его можно добавить в канал или чат, а также подключить к платформам автоматизации и различным сервисам. Более сложные возможности реализуются с помощью программируемых скриптов, которые составляют разработчики.
Но так или иначе сначала бота нужно создать. Делается это следующим образом.
Как создать бота в Telegram
Чтобы сделать своего бота, понадобится другой бот — BotFather. Это официальный инструмент для создания ботов и управления ими. Найти BotFather можно через поиск. Обратите внимание на синюю галочку рядом с именем: именно она укажет на правильный чат.
Запустите диалог с ним и нажмите «Начать».
Кликните по кнопке меню и выберите /newbot.
BotFather попросит назвать вашего бота. Введите желаемое имя и нажмите «Отправить».
Следующим шагом нужно придумать боту никнейм. Он должен быть уникальным и заканчиваться на bot. Если эти условия не выполняются, BotFather просит сочинить другой.
Далее BotFather предоставит ссылку на созданного бота и токен для обращения к нему. Ссылка нужна для поиска бота, ею можно делиться. А вот токен — длинный набор символов — вещь секретная. Это своеобразный ключ, с помощью которого осуществляется управление программой. Сохраните его в надёжном месте и никому не показывайте.
После этого с ботом, по сути, можно работать. Если перейти по выданной в предыдущем шаге ссылке, откроется диалог с ним. Правда, без настройки он пока ничего не сможет сделать.
Как настроить бота в Telegram
В зависимости от того, для чего вам требуется бот, его нужно будет подключить к различным сервисам и платформам автоматизации. Для этого в процессе настройки понадобится указать имя бота и его токен.
Также при желании можно добавить описание (/setdescription), прикрепить аватар (/setuserpic) или сменить имя (/setname). Все эти действия осуществляются через меню в BotFather. Если у вас несколько ботов, то сначала придётся выбрать нужный из списка.
В качестве наглядного примера мы создадим простого чат-бота с помощью бесплатного сервиса Manybot. Он не требует навыков программирования и работает прямо в Telegram. Наш бот будет предлагать полезную информацию для читателей: книги и подкасты Лайфхакера, а также открытые вакансии и возможность связи с редакцией. Принцип работы несложный: пользователь переходит в нужный чат по ссылке, запускает одну из команд, нажимая на кнопку в меню, и получает ответ на свой вопрос. Вот какие этапы включает настройка.
Подключение бота
Сначала нужно открыть чат с Manybot, перейдя по ссылке, и нажать «Начать».
Затем выбрать удобный для вас язык.
Кликните «Добавить нового бота».
А вот теперь понадобится токен созданного ранее бота, который выдал BotFather. Нажмите «Я скопировал токен» и отправьте его Manybot.
Добавьте описание бота, которое будут видеть пользователи, или пропустите этот шаг.
Создание команд
Далее вернитесь к своему боту, которого создали с помощью BotFather, и нажмите «Начать».
Выберите «Пользовательские команды».
Затем — «Создать команду».
Придумайте название команды латинскими буквами, начиная со слеша.
Впишите текст, добавьте ссылки или фото, которые увидит пользователь после вызова команды. Сообщений может быть несколько. Нажмите «Отправить», а затем «Сохранить».
Таким же образом через меню «Создать команду» добавьте остальные команды, которые вам нужны. В нашем примере это подкасты, вакансии и обратная связь.
Добавление кнопок в меню
Чтобы пользователи могли взаимодействовать с ботом через графический интерфейс, а не вводить команды вручную, необходимо добавить кнопки для каждой из них. Для этого нажмите «Настроить гл. меню».
Кликните «Добавить пункт меню».
Выберите нужную команду.
Придумайте название для кнопки и нажмите «Отправить».
По такому же принципу добавьте кнопки для других команд.
Проверка работы бота
Перейдите по ссылке на бота. Пользователи увидят только добавленные команды, у вас же будет отображаться расширенное меню с настройками.
Протестировать бота из нашего примера и посмотреть, как выглядит работа с ним, можно по этой ссылке.
Читайте также 📱📳📲
Как настроить платежи через бота в Telegram
- 18.05.2021
- Просмотров:
Чтобы принимать платежи в Telegram, нужно сделать три вещи:
Создать бота.
Подключить его к боту PayMaster.
Настроить своего бота для работы с платежами.
Как создать бота в Telegram
-
В Telegram необходимо найти в поиске @BotFather.
Далее отправьте ему команду /start:
Далее отправьте ему команду /newbot:
-
Придумайте боту имя (name) и юзернейм (username). Имя бота будет в списке контактов и наверху чата, оно может быть неуникальным.
Далее, необходимо будет вести имя пользователя (адрес по которому вашего бота можно будет найти через поиск telegram). Юзернейм должен быть уникальным и обязательно заканчиваться на bot.
В ответ BotFather пришлет в ответ сообщение с токеном — «ключом» для доступа к созданному боту.
-
Теперь у нас есть бот, которым мы можем управлять. Но пока наш бот без какой либо начинки – функционала и его необходимо дальше настроить.
Отправьте @BotFather команду /mybots. Нажмите на имя своего бота.
Откроется панель управления ботом, в ней, выберите настройку платежных систем Payments.
-
Выберите платежного бота PayMaster.
-
Если хотите протестировать процесс оплаты — выберите Connect PayMaster TEST. Создание привязки возможно, если вы рассматриваете вариант подключения нового процесса оплаты, не имеете подписанного договора и доступа в ЛК PayMaster.
Отправьте команду /start
Бот подтвердит успешную привязку и создаст тестовый платежный токен, который вам необходимо будет сохранить и использовать в дальней настройке любого бот магазина.
Если хотите настроить настоящие платежи, в открывшемся меню выберите Connect PayMaster LIVE.
Создание привязки возможно, если у вас есть доступ ЛК PayMaster и подписан договор.
Для подключения реальной оплаты, отправьте боту PayMaster LIVE команду /start
Далее отправьте боту идентификатор сайта из вашего ЛК PayMaster.
Если отправлены данные верные, бот подтвердит успешную привязку, создаст боевой платежный токен, который вам необходимо будет сохранить и использовать в дальней настройке любого бот магазина.
Создать магазин в Telegram можно с помощью конструкторов PuzzleBot, bot4shop
Рассмотрим создание магазина в Telegram на примере PuzzleBot с условно бесплатным тарифом
-
В Telegram необходимо найти в поиске @PuzzleBot
Далее отправьте ему команду /start
После этого, ваш аккаунт в сервисе PuzzleBot будет успешно создан и вы можете приступать к настройке магазина. Для этого перейдите в личный кабинет PuzzleBot и подтвердите согласие с пользовательским соглашением.
-
Введите почту которая будет использоваться для авторизации и получения уведомление от сервиса о совершенных продажах.
Подтвердите введенный почтой адрес, пройдя по ссылке из письма автоматически отправленного сервисом PuzzleBot.
-
Далее в @BotFather оправьте команду /mybots. Нажмите на имя своего бота.
Откроется панель управления ботом, в ней, выберите API Token.
Сохраните данный токен (API Token), вы будете его использовать для связки вашего бота с сервисом PuzzleBot.
-
Для продолжения настройки перейдите и авторизуйтесь в сервисе PuzzleBot https://cp.puzzlebot.top/
Добавьте свой бот, указав данные токена (API Token) которые вы получили ранее.
-
После этого ваш бот будет привязан в сервисе PuzzleBot и вы сможете активировать функционал магазина.
После активации в сервисе PuzzleBot функционала магазина вам необходимо настроить валюту выбрав и сохранив настройку Russian Ruble (₽)
Далее в разделе Настройки Платежные системы выберите PayMaster и укажете данные ранее сохраненного тесового PayMaster TEST или боевого PayMaster LIVE платежного токена. После этого тестовая или боевая оплата в боте PuzzleBot будет настроена и доступна. Если вы настраиваете тестовую оплату в дальнейшем вы сможете изменить тестовый токен на боевой.
Для запуска магазина, остается только добавить продаваемые товары и услуги.
А также, в разделе конструктор сервиса PuzzleBot, возможные сценарии продажи и оплаты.
-
Для проверки работы вашего магазина необходимо в Telegram найти поиском свой бот магазин и отправить ему команду /start. После этого, будет отображен каталог товаров с возможностью их покупки и оплаты через платежную систему PayMaster.
Как создать бота в Телеграмме — инструкция + обзор конструкторов
Вы узнаете, что могут делать боты в мессенджере Telegram, как без знаний программирования можно создать такого робота и как на нем заработать. Читайте, какие конструкторы по созданию ботов пользуются наибольшим спросом.
Добрый день, уважаемые читатели! С вами Алла Просюкова — финансовый эксперт журнала «ХитёрБобёр».
Несколько лет назад большинство из нас не только не умели пользоваться различными мессенджерами и программами-роботами, но даже не знали их названий.
Мир не стоит на месте! И то, что ещё вчера казалось фантастичным, сегодня — обыденность. Мы не только стали активно пользоваться всем этим цифровым богатством, но и научились создавать несложных ботов своими руками.
Если вы всё ещё не попробовали себя в этом увлекательном и полезном деле, то моя новая статья придётся как нельзя кстати!
Ознакомившись с ней, вы:
- узнаете, что такое телеграмм-боты и для чего они нужны;
- научитесь создавать собственных роботов-помощников для канала в телеграмм и не только;
- познакомитесь с некоторыми способами заработка на их создании.
Интересно? Тогда поехали!
1. Что такое боты в Telegram и что они могут делать
Предлагаю начать с определения, которое поможет сразу всё расставить по своим местам.
Бот (иногда его ещё называют чат-бот) — сокращенное название (от слова робот) специальных программ-помощников, выполняющих монотонные, рутинные, повторяющиеся задачи.
Функционал роботов разнообразен.
Они умеют:
- Проводить опросы.
- Доставлять информацию об обновлениях с сайта.
- Показывать новости по заданной пользователем тематике.
- Находить и скачивать любую информацию.
- Совершать рассылку.
- Управлять умным домом.
- Развлекать.
- Заниматься автопродажами.
- Обучать и т.п.
Программы-роботы объединили в мессенджере всю информацию, которую раньше приходилось искать через разные поисковики на просторах интернета. Теперь нет необходимости устанавливать множество приложений. Достаточно одного Телеграма и нескольких чат-ботов.
Пример
Ольга общалась в телеграмм-чате со своей подругой Дашей, которая уехала отдыхать, но вместо веселого путешествия слегла в отеле с простудой. Девушке хотелось поддержать подругу, и она отправила ей весёлую гифку.
Оле не пришлось выходить из приложения, блуждать по интернету в поиске нужного варианта. Девушка воспользовалась @gifbot . Она направила в бот сообщение с указанием эмоции, которую должна выражать гифка. И вот через несколько секунд робот предложил ей на выбор несколько замечательных вариантов.
Telegram bot обладает неоспоримыми достоинствами:
- круглосуточное функционирование;
- быстрый ответ на запрос;
- использование для работы сторонних серверов, что экономит мощности устройства его владельца;
- безопасность (у робота отсутствует доступ к личной информации пользователя, он взаимодействует только с текстовыми сообщениями).
О том, как заработать в Телеграм, читайте отдельную статью.
2. Как создать бота в Телеграм — пошаговая инструкция
Бот можно создать, зная язык программирования или абсолютно не владея им.
В первом случае программа пишется ручным способом программистом — как правило, на универсальном языке PHP. Во втором случае разработка ведётся пользователями, не обладающими профессиональными знаниями и навыками, с помощью специальных конструкторов, например, Manybot.
Моя пошаговая инструкция как раз для неспециалистов.
Шаг 1. В окно поиска вводим название бота
Заходим в Телеграм через приложение или веб-версию. Попав в мессенджер, вбиваем в поисковую строку слово Manybot. Из нескольких предложенных вариантов выбираем именно тот, который искали. На экране раскроется чат, внизу появится кнопка «Начать». Жмём её.
Шаг 2. Выбираем язык и нажимаем пункт “Добавить нового бота”
Далее программа предложит выбрать язык будущего бота из предлагаемого перечня. Нажимаем на кнопку «Русский». После этого переходим непосредственно к созданию робота, нажав на пункт «Добавить нового бота».
Шаг 3. Переходим на @BotFather и вводим команду newbot
Теперь необходимо создать токен авторизации в BotFather. Для этого переходим в него и отправляем команду «/newbot».
Шаг 4. Вводим название аккаунта и техническое имя
После всех вышеописанных манипуляций придумываем имя для бота-новичка. Это может быть любое название, по вашему усмотрению. Если выбранное имя уже существует, на экране появится предупреждение. Подбирать придётся до тех пор, пока наименование не будет уникальным.
Допустим, мы создаём бота для подбора кулинарных рецептов из имеющихся у пользователя продуктов. Исходя из его предназначения, назовём новичка cook.
С учётом подобранного имени формируем ссылку на будущего помощника.
Используем подобранный ранее вариант имени, получаем ссылку cook_bot.
Шаг 5. Сохраняем API-токен и отправляем на @Manibot
BotFather выдаст API-токен в виде строчки с набором множества цифр и букв. Копируем её, после чего переходим обратно в @Manibot и отправляем скопированный токен в виде обычного сообщения.
Шаг 6. Вводим описание аккаунта
После успешной обработки и принятия API система предложит создать краткое описание полученного робота. Сообщение должно быть кратким, отражать цель его использования, чтобы пользователь сразу понимал, чем будет полезен лично ему этот робот.
Пример
Вот какое описание я сделала для нашего кулинарного бота: «Подбор кулинарного рецепта по списку имеющихся у вас продуктов».
@Manibot позволяет пропустить шаг с описанием, отправив в сообщении команду /skip. Но я не рекомендую этого делать. Ведь описание — лицо бота, по которому его будут выбирать будущие подписчики.
Вот и всё! Ваш робот-помощник создан. Теперь его необходимо настроить. Отравляем сообщение «/commands», после чего откроется меню с вариантами настройки: «Создать команду» и «Настроить гл. меню».
Создать команду — прописать пользовательские команды, на которые робот будет реагировать. Например, для нашего cook создаем команду /rezept. Получив её, робот вышлет кулинарный рецепт под заданный продуктовый набор.
Далее нажимаем на пункт «Настроить гл. меню» и переходим к панели настроек. С её помощью формируем базовые команды, облегчающие работу пользователей.
В дополнение рекомендую к просмотру тематическое видео:
3. Обзор ТОП-3 конструкторов для создания ботов в Телеграмм
Ещё совсем недавно без программистов было невозможно не только сделать сайт или бота, но даже в стандартной установке/обновлении программ требовалась их помощь.
К счастью, всё течёт и всё меняется. Теперь даже далёкие от всех языков программирования пользователи самостоятельно, без особого труда, создают программы-роботы для соцсетей и т.п.
Это стало возможным c появлением онлайн-конструкторов. Я предлагаю вашему вниманию 3 сервиса для создания телеграмм-ботов.
Flow XO
Flow XO, пожалуй, самый серьёзный из всех представленных в обзоре сервисов для конструирования роботов. Он предназначен для создания и сопровождения умных программ для бизнес-процессов.
Разработчики предлагают различный функционал на платной и бесплатной основе. Пользователи оплачивают только то, что им действительно нужно.
В арсенале конструктора имеются шаблоны готовых модулей.
Chatfuel
Это бесплатный бот-конструктор для Телеграмм и Фейсбук, простой в использовании, имеющий обширный функционал.
О качестве сервиса свидетельствует список его постоянных именитых потребителей:
- National Geographic.
- TechCrunch.
- UBER.
- Forbs и т.д.
Востребованность Chatfuel подтверждается общим числом пользователей (более 15 млн.) и количеством созданных ботов (более 500 тыс.). Роботы, созданные на этой платформе, легко интегрируются в различные сервисы и сети: YouTube, Твиттер, Инстаграм и т.п.
Recast AI
И, наконец, последний конструктор из моего мини-обзора — Recast. AI. Разработчики позиционируют своё детище, как самый простой для понимания и обучения строитель ботов. На его начальное освоение требуется в среднем около 8 минут. Сервис работает на специально разработанной технологии распознавания естественного языка.
Конструктор имеет 2 тарифа: платный и бесплатный. Функционал обоих практически одинаков, основная разница лишь в том, что платный тариф предназначен для корпоративных клиентов.
Для наглядности основные характеристики сведены в сравнительную таблицу:
Наименование сервиса | Тарифы | Функционал | Сложность использования | Основное направление использования |
Flow XO | Платный, бесплатный | Есть ограничения на бесплатном тарифе | Требуются специальные навыки и знания | Бизнес-процессы |
Chatfuel | Бесплатный | Нет ограничений | Низкая | Все направления |
Recast AI | Платный (для корпоративных клиентов), бесплатный (для прочих пользователей) | Нет ограничений | Низкая | Все направления |
4. Полезные боты для бизнеса
Прежде чем заказывать новый бот для своего бизнеса или создавать его с помощью конструктора, рекомендую проверить в Телеграм уже существующие. Возможно, там уже есть подходящий!
Промониторив каталог мессенджера, я отобрала 3 робота, которые будут полезны практически для любой компании. Все они способны говорить на русском языке. Знакомьтесь!
Mirabellabot
Даже в самых маленьких фирмах чаще всего предусмотрена должность секретаря. Однако в век высоких технологий некоторый функционал нетрудно переложить на «плечи» mirabellabot — робота-секретарши.
Он без труда:
- создаст список всех дел;
- запомнит и сохранит необходимые ссылки;
- напомнит о незаконченных делах/невыполненных задачах;
- сохранит важные заметки.
Pravorubot
Нередко в бизнесе возникают сложные правовые ситуации, а собственного юриста в фирме нет. Конечно, найти консультанта не проблема, даже в маленьких городах есть несколько юридических компаний, оказывающих подобные услуги. На худой конец ответ можно поискать в интернете. Однако иногда на это просто нет времени.
Выход из этой ситуации есть — телеграмм-бот Pravorubot. Здесь все желающие в течение 15 мин. получат ответы на свои юридические вопросы. Робот поможет найти юристов нужной специализации вблизи указанного пользователем местоположения.
При этом @Pravorubot неутомимо трудится круглосуточно, без праздников и выходных!
EGRUL_bot
С каждым годом законодательство РФ всё жёстче требует от компаний, независимо от их форм собственности и системы налогообложения, проявлять должную осмотрительность при выборе контрагента и заключении договоров.
Все юрлица и ИП должны проводить предварительную проверку своих будущих партнёров, в противном случае нарушителей ждут неприятности с налоговой вплоть до ликвидации фирмы.
Для этих целей будет весьма кстати EGRUL_bot. С его помощью вы быстро и легко запросите выписку из ЕГРЮЛ, узнаете данные об учредителях, а это как раз один из пунктов той самой обязательной проверки. Достаточно только сообщить ИНН или ОГРН проверяемого. Документ придёт в PDF-формате.
5. Можно ли заработать на ботах
Не только можно, но и нужно! В Телеграмм есть несколько способов для этого.
Вот только некоторые из них:
- Создание ботов под заказ.
- Участие в конкурсе для создателей программ-роботов от Павла Дурова.
По моему глубокому убеждению оба способа подходят только для программистов, желающих заработать приличные деньги. Специалисты, владеющие языками программирования, как правило, создают боты по заданию компаний-заказчиков, реже заказчиков-физлиц. Цена качественного робота начинается от 15 тыс.руб.
Пользователи, которые не имеют специальных знаний и навыков, тоже смогут заработать небольшие суммы, создавая программы с помощью специальных конструкторов, а затем продавая их тем, кто не может или не хочет делать этого сам.
Только помните, что функционал такого творения ограничивается возможностями конструктора, на котором он создан. Да и доход от подобных сделок невелик. Обычно их стоимость составляет от 500 руб.
Павел Дуров периодически проводит конкурс среди создателей ботов на получение грантов. Призовой фонд — 1 млн $. Сумма каждого гранта не менее 25 тыс. дол. Сведения о событии размещаются в паблике мессенеджерв в ВКонтакте.
Основные требования к вновь создаваемым ботам:
- быстродействие;
- полезность;
- функционирование на базе Телеграмм;
- работа в inline-режиме.
Выбирайте наиболее подходящий для вас способ и начинайте зарабатывать!
6. Заключение
Прочитав статью до конца, вы узнали, как создать бота в телеграмме. Роботы способны не только облегчить взаимодействие между общающимися в телеграмм-чате. На их создании реально заработать, даже не будучи программистом.
Вопрос к читателям:
Сподвигла ли вас полученная информация на создание своего телеграмм-бота?
Желаем вам успехов и процветания! Будем признательны за комментарии. Появились вопросы по теме? Задавайте, обязательно ответим!
Автор статьи: Виталий Цыганок
Разработчик сайтов, фрилансер. Учился в МГУПИ города Ставрополя по специальности “Прикладная информатика в экономике”, но бросил институт на третьем курсе. Имеет опыт работы официантом, почтальоном, грузчиком.
Рассматривает сайты как источник постоянного пассивного дохода. С партнером запустил с нуля более 25 интернет-ресурсов.
Сооснователь и редактор ХитёрБобёр.ru до 2019 года, на сайте отвечал за семантическое ядро и SEO-продвижение.
Создаем бота для Telegram
В рамках данной статьи я расскажу о том, как быстро и легко написать программу-бота для популярного мессенджера Telegram. Писать бота мы будем на языке Python, параллельно изучая его основы. Договоримся, что вы используете Linux в качестве операционной системы, либо знаете как выполнить аналоги команд в Windows.
Установка необходимых библиотек
Нам понадобятся следующие библиотеки и программы:
- pip — менеджер пакетов для Python
- python — интерпретатор языка
- virtualenv — виртуальное окружение
- telebot — обертка над telegram API для языка Python
Теперь откроем консоль и наберем несколько команд. Первым делом загрузим менеджер пакетов для питона и виртуальное окружение, внутри которого мы будем устанавливать все остальные пакеты, чтобы не засорять систему и не порождать конфликтов с другими проектами. Также скачаем проект telebot, который носит название pyTelegramBotAPI.
sudo apt-get install python-pip
sudo pip install pyTelegramBotAPI
sudo pip install virtualenv
Следующая команда создаст в вашей директории новую директорию venv, в которой будет хранить все локальные библиотеки. Подробности про виртуальные окружения можно прочитать по адресу: http://docs.python-guide.org/en/latest/dev/virtualenvs/ Можно работать и без виртуального окружения, но тогда убедитесь, что устанавливаемые вами библиотеки не конфликтуют с другими библиотеками в системе (например, могут сломаться некоторые программы, заточенные под старые версии пакетов).
virtualenv venv
После чего нам потребуется переместиться внутрь виртуального окружения, где можно будет подгружать все необходимые пакеты для проекта.
source venv/bin/activate
Создание Telegram-бота
Начнем с создания простого бота для Telegram. Чтобы наш бот функционировал, нужно первым делом его создать. Для этого в телеграме есть специальный мета-бот BotFather (@BotFather). Добавьте его через поиск в вашем клиенте телеграмма. Список его команд можно получить, написав в чате с ним команду /help. Для создания нового бота нужно написать команду /newbot и в следующем сообщении передать название бота (должно заканчиваться словом bot). В ответ вам придет сообщение с API токеном — он понадобится нам для создания соединения с телеграммом.
Создайте файл simplebot.py со следующим содержанием:
# -*- coding: utf-8 -*-
import telebot
bot = telebot.TeleBot("") @bot.message_handler(commands=['help', 'start'])
def send_welcome(message):
msg = bot.send_message(message.chat.id, 'Привет! Я codex_bot!') @bot.message_handler(commands=['auth'])
def send_auth(message):
pass bot.polling()
Код довольно интуитивен, поясним только основные идеи. Когда пользователь будет вводить команды /start и /help — выполнится функция send_welcome, которая отправит пользователю в чат сообщение с приветствием. При вводе /auth пока ничего происходить не будет.
Запустите бота командой:
python simplebot.py
Теперь вы можете добавить своего бота в чат телеграмм и пообщаться с ним. Много полезных функций можно найти в документации telegram. Например, если вы хотите изменить описание, которое будут видеть пользователи при добавлении вашего бота в чат, вы можете написать @botfather следующую команду:
/setdescription
Затем выберите нужного бота из предложенного списка и следующим сообщением отправьте текст описания. Также, вы можете задать вашему боту список команд, которые он понимает. Это необходимо для того, чтобы у пользователей выводились подсказки при наборе команд в чате. Введите:
/setcommands
Выберите бота из списка и в следующем письме введите перечень команд в формате:
команда1 - Описание команды
команда2 - Еще одно описание команды
Этих знаний достаточно, чтобы уже сейчас запустить своего бота. О том как сделать его чуточку полезнее, читайте в продолжении.
Создание бота в телеграме, как создать
Я был одержим научной фантастикой, когда был подростком, поэтому кодирование всегда меня привлекало. Меня нравилась сама мысль о том, что можно написать программу, которая ведет себя случайным образом – для меня, это было нечто в области фантастики!
Эта навязчивая идея подпитывала мои первые попытки в кодировании, и в результате появилось много забавных ботов. Например, этот, который описывает страшные места, путем объединения слов наугад, и этот, который рисует PNG в цветах блоков.
Ничего необычного. Я едва ли мастер-программист, и вам тоже не обязательно им быть. Благодаря базовому пониманию кодирования и API-интерфейсов вы можете создать действительно полезное программное обеспечение для удовольствия и прибыли. В этом уроке мы рассмотрим создание бота в Telegram с нуля.
Бот Telegram можно использовать с Intercom API, чтобы предоставить агентам поддержки доступ к своим клиентам, которые используют Telegram. Он также может включать автоматизацию, которая объединяет полезные ресурсы с чатом в прямом эфире, например, в примере ниже из orat.io :
Telegram – отличный дом для ботов, ориентированных на клиентов, с более чем 200 000 000 активных пользователей в месяц и годовой прирост в 50% . Это платформа, которую может использовать ваша аудитория, что поможет вам избежать разногласий и будет способствовать взаимопониманию. Кроме того, создание ботов для Telegram – самый простой способ создания ботов.
Вот почему я решил написать эту инструкцию – это может стать хорошей отправной точкой для начинающих программистов, которые ищут что-то для быстрого заработка (и потенциально ценное) за счет использования популярной и функциональной платформы.
Первый бот, который я сделал для Telegram, использовал RSS, чтобы найти материалы на канале Hacker News, которые соответствуют поисковому запросу:
Можете воспользоваться этим ботом – он здесь и он жив!
Благодаря знаниям из этого руководства и дальнейшему прочтению статьи вы сможете создать чат-чат поддержки для своей компании, читатель RSS-каналов, панель управления для вашего умного дома или бот, который отвечает, используя только котировки Шекспира. Маленькие программные проекты, подобные этому, очень интересны и бесконечно расширяемы. Чем больше вы читаете и придумываете новых функций, тем дальше вы можете продвинуть своего бота.
В этом руководстве вы узнаете:
- Как написать код для бота с нуля
- Как добавить новые команды в словарь бота
- Основные команды терминала для создания файлов и навигации по папкам
- Немного языка программирования Ruby
- Как расширить Ruby с помощью Gems (пакет инструментов)
- Как заставить ваш бот удалял случайные ответы из списка
- Несколько простых команд git, которые помогут вам управлять и передавать ваши файлы
- Как развернуть бота на сервере и запустить его 24/7
Перед запуском вам понадобятся:
- Баш-терминал. Поставляется в комплекте с такими операционными системами как macOS и Linux, но не Windows. Если вы следуете этому руководству на компьютере под управлением Windows, у которого нет обновления для Windows 10 , вы можете использовать .
- Рубин. Обратитесь к официальной документации Ruby для руководств по конкретным ОС. Я лично использую Homebrew на macOS, но пользователи Windows могут установить его с помощью виртуального эмулятора, который вы можете выбрать здесь (https://www.slant.co/topics/1552/~best-terminal-emulators-for-windows) .
- Bundler. Bundler помогает управлять пакетами инструментов (gems) для Ruby, которые добавляют дополнительные функции вашим приложениям. Для этого вам понадобится добавить интерфейс к API Telegram к вашему боту. Просто введите gem install bundler в свой, чтобы установить его.
- Текстовый редактор. Теоретически вы можете использовать Notepad или TextEdit, но большинство из них рекомендовало бы специально созданный редактор, такой как Atom , который выделяет синтаксис и помогает сделать ошибки кода более очевидными.
С этим все, давайте пойдем дальше.
Шаг 1. Загрузите приложение Telegram для рабочего стола
Телеграмм – это преимущественно мобильное приложение, но для удобства вы можете установить его на том же компьютере, который вы используете для написания кода. Таким образом, вы можете быстро протестировать его, не используя телефон. И вы сможете скопировать и вставить ключ API-робота Telegram прямо в текстовый редактор.
Как же получить этот ключ API?
Шаг 2. Чат с BotFather, чтобы получить ключ API
Создание ботов телеграмм – это новый процесс, потому что большая его часть сосредоточена вокруг ваших собственных взаимодействий с ботом Telegram. Этот бот – BotFather. В вашем рабочем столе Telegram вам нужно найти его и начать разговор с ним.
Отправьте команду запуска BotFather, набрав /start .
Вы увидите список команд, которые помогут вам создавать, редактировать и управлять ботами. Поскольку это ваш первый раз, вам нужно /newbot .
По сравнению с процессом создания бот-сервера Twitter, бота Mastodon или любого другого бота, с которым я экспериментировал, Telegram упрощает первоначальную настройку. Наверное, это доказывает, что Telegram ― это отличный инструмент для работы с ботом!
После предоставления команды /newbot вы можете выбрать имя и имя пользователя для своего бота. Название – это то, что ваши пользователи будут видеть бота, как в списке своих контактов, и имя пользователя, как они его найдут. Подумайте о имени пользователя, как и в Twitter; оно должно быть уникальным, и лучше всего, если оно короткий и легко запоминается.
После этого вам будет предоставлен ключ API вашего бота. Ключ API – это то, благодаря чему Telegram может распознать, что код, который вы пишете, связан с этим конкретным ботом. У каждого бота есть свой API-ключ, и вы не должны делиться им ни с кем, иначе люди могут захватить вашего бота и заставить его творить ужасные вещи.
На этом чат BotFather завершен, переходим к коду!
Шаг 3: Настройка GEMS и каталога бота
Откройте терминал и введите mkdir telegram-bot . Это создаст новый каталог для файлов вашего бота. Лучше всего держать их в одной папке, чтобы можно было легко ей управлять. Перейдите в каталог cd telegram-bot и выполните следующие действия:
touch Gemfile
touch bot.rb
atom .
Это действие создаст два пустых файла, один для указания GEMS, которые вам понадобятся, и тот, где будет содержаться код бота. Последняя команда открывает оба этих файла в Atom.
Нажмите Gemfile на боковой панели Atom и вставьте следующее:
source ‘https://rubygems.org’ gem ‘telegram_bot’
source ‘https://rubygems.org’ gem ‘telegram_bot’ |
Это нужно Bundler, чтобы захватить интерфейс Ruby API Telegram от rubygems.org.
Чтобы завершить настройку gem, вернитесь к своему терминалу и введите bundle . Вот что вы должны увидеть:
Вот и все, что касается настройки gems, теперь мы наконец попадаем в код.
Кодирование вашего первого бота Telegram
Фактический код, который будет постоянно работать на сервере, находится внутри файла bot.rb. Сейчас он пуст, но здесь мы собираемся связать gems с Telegram, который мы только настроили и создадим бота.
Писать не так уж много. Когда вы закончите, вы получите следующее:
Так будет выглядеть в Telegram то, что делает код выше:
Давайте посмотрим, что делает каждая часть кода:
require ‘telegram_bot’ token = ‘TOKEN’ bot = TelegramBot.new(token: token)
require ‘telegram_bot’ token = ‘TOKEN’ bot = TelegramBot.new(token: token) |
(Замените TOKEN маркером API, который вы скопировали из BotFather)
Ruby позволяет довольно легко угадать, какой код будет выполняться. Три приведенные выше строки добавляют функциональность ботов Telegram к вашему файлу, а затем создают новый бот-объект из класса TelegramBot, аутентифицированный вашим токеном (генератор одноразовых паролей в системах аутентификации), поэтому программа знает, куда отправлять данные.
Следующая часть – одна большая петля. Сначала это кажется сложным, сейчас я объясню вам все по порядку.
bot.get_updates(fail_silently: true) do |message| puts «@#{message.from.username}: #{message.text}» command = message.get_command_for(bot) message.reply do |reply| case command when /start/i reply.text = «All I can do is say hello. Try the /greet command.» when /greet/i reply.text = «Hello, #{message.from.first_name}. « else reply.text = «I have no idea what #{command.inspect} means.» end puts «sending #{reply.text.inspect} to @#{message.from.username}» reply.send_with(bot) end end
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
bot.get_updates(fail_silently: true) do |message| puts «@#{message.from.username}: #{message.text}» command = message.get_command_for(bot)
message.reply do |reply| case command when /start/i reply.text = «All I can do is say hello. Try the /greet command.» when /greet/i reply.text = «Hello, #{message.from.first_name}. « else reply.text = «I have no idea what #{command.inspect} means.» end puts «sending #{reply.text.inspect} to @#{message.from.username}» reply.send_with(bot) end end |
Первая строка говорит боту продолжать слушать команды. И когда он получает команду передать его в переменную message . Строка puts записывает команду на ваш терминал, чтобы вы могли видеть, что происходит во время запуска бота.
Действия ответчика бота хранятся в case-заявлении. Ввод case case подается через переменную message после того, как он был очищен методом get_command_for . Текст ответа бота устанавливается в зависимости от сохраненной команды и затем отправляется с send_with до перезапуска цикла.
С помощью этой настройки теперь вы можете найти своего бота на Telegram и отправить команды /start и /greet и посмотреть его в действии.
Для этого сохраните изменения в Atom и запустите ruby bot.rb в терминале. Пока этот терминал открыт и работает, ваш бот отправляет ответы!
Настройка нового блестящего бота
Бот, который вы только что создали, в порядке, но еще не выглядет достаточно интересным. Существуют базовые биты, что означает, что вы можете их легко заменить и расширить.
Части, на которые следует обратить внимание при настройке, это строки when /command/i и текст между кавычками в строках reply.txt . Это те сообщения, которые принимает ваш бот, и которые он отправляет обратно в качестве ответов.
Итак, если вы хотите сказать что-то другое как ответ на команду /greet , вы должны изменить значение reply.text под командной строкой приветствия ( when /greet/i ). Вот вариант, который вы могли бы попробовать:
when /greet/i greetings = [‘bonjour’, ‘hola’, ‘hallo’, ‘sveiki’, ‘namaste’, ‘salaam’, ‘szia’, ‘halo’, ‘ciao’] reply.text = «#{greetings.sample.capitalize}, #{message.from.first_name}!»
when /greet/i greetings = [‘bonjour’, ‘hola’, ‘hallo’, ‘sveiki’, ‘namaste’, ‘salaam’, ‘szia’, ‘halo’, ‘ciao’] reply.text = «#{greetings.sample.capitalize}, #{message.from.first_name}!» |
Здесь я создал массив с несколькими различными способами, чтобы поздороваться, а затем добавил его в случайное сообщение, используя метод sample .
Превращение вашего бота в нечто удивительное
Вы можете добавить столько команд, ответов и функций своему боту, сколько захотите. Большинство из них – это задачка для вашего воображения. Если вы хотите узнать много других интресных вещей, которые применимы к вашему боту, начните с Learn Ruby the Hard Way, чтобы понять основные принципы языка кодирования. С небольшой практикой и надежной зависимостью от StackOverflow вы сможете:
- Подключите другие API-интерфейсы, чтобы извлекать данные из таких источников, как Airtable , Slack , RSS или Twitter . Здесь наблюдается действительно захватывающая функциональность – вы можете создать бота, который действует как диалоговый интерфейс к набору данных или функций, например, боту, который возвращает результаты поиска из Twitter или сообщения в Slack.
- Храните пользовательский ввод в базе данных. Вы можете создать бот Telegram, который предлагает автоматическую поддержку пользователям или отвечает на запросы, и сохраняет их адреса электронной почты в базе данных. Sequel gem позволяет легко создавать, писать, редактировать и читать базы данных.
- Постройте свою текстовую игру. Colossal Cave Adventure – одна из первых игр с использованием бота , была перенесена на Telegram. Проверьте здесь и посмотрите источник здесь .
Если вам нужно вдохновение, вы можете прочитать исходный код ботов других людей и проверить список ботов Telegram – попробуйте выяснить, как они работают и воссоздавать их в качестве практики.
Запуск бота 24/7
Прямо сейчас, ваш бот работает на вашем компьютере. Это нормально, пока вам не потребуется перезагрузить компьютер, ваш wi-fi или ваш компьютер перейдёт в спящий режим. Когда это произойдет, это завершит процесс работы бота, и пользователи не получат от него ответа.
Процесс перемещения вашего бота из среды разработки (ваш компьютер, на котором вы использовали Atom для записи бота) в производственную среду (сервер), называется развертыванием. Существует несколько вариантов развертывания вашего бота, но в обоих случаях мы начнем с загрузки файлов в Bitbucket . Bitbucket позволяет использовать git , систему управления версиями, которая поможет вам безопасно сделать и отслеживать изменения в коде вашего бота. Загружая файлы бота в Bitbucket, вы можете использовать Bitbucket как способ захватить файлы бота, когда вы вошли в систему.
Подпишитесь на Bitbucket и создайте свой сервер.
При открытии терминала и в том же каталоге, что и исходный код бота, введите следующее:
git init git add . git commit -m ‘initial commit’
git init git add . git commit -m ‘initial commit’ |
Теперь следуйте инструкциям Bitbucket. Вот как это сделал я:
После ввода этих двух выделенных команд и предоставления моего пароля Bitbucket, файлы загружаются по запросу. Когда ваш код живет в облаке, пришло время выбрать способ развертывания.
Развертывание с помощью Raspberry Pi
Этот одноплатный компьютер Raspberry Pi на моем столе содержит кучу ботов
Raspberry Pi – отличная инвестиция, если вы планируете создавать и развертывать боты – вы можете получить ее всего за 7 долларов плюс стоимость SD-карты. Он использует очень мало энергии , поэтому вы можете держать его на месте и не беспокоиться о стоимости. Возможно, возникнет соблазн купить пакет, который поставляется с клавиатурой, мышью и футляром, но вам нужно всего лишь зарядное устройство USB, SD-карту, кабель Ethernet и сам компьютер. Вероятно, у вас, наверное, больше всего этого в вашем офисе.
Развертывание с помощью облачного сервера
Вам не нужно владеть компьютером, на котором работает ваш бот, вы можете использовать память и мощность чужой машины для запуска бота удаленно. Популярные решения для развертывания в облаке включают Amazon Web Services (AWS), DigitalOcean и Heroku.
Самые подходящие для начального уровня – DigitalOcean и Heroku. Нажмите здесь, чтобы получить учетную запись DigitalOcean, которая поставляется с кредитом в размере 10 долларов – достаточно для запуска сервера в течение двух месяцев, пока вы его протестируете.
Когда вы подписываетесь на DigitalOcean , вы узнаете, как подключиться к серверу через SSH и запустить консоль.
Затем, вам нужно проделать определённые действия на вашем ПК, независимо от того, какой сервер вы используете. После того, как вы настроили серверь, давайте перейдем к фактическому развертыванию.
Процесс развертывания
На новом сервере – будь то Raspberry Pi или облачный сервер, например, Digital Ocean, вам нужно установить Ruby, Bundler и Git:
sudo apt-get update sudo apt-get upgrade curl -L https://get.rvm.io | bash -s stable —ruby sudo apt-get install bundler sudo apt-get install git
sudo apt-get update sudo apt-get upgrade curl -L https://get.rvm.io | bash -s stable —ruby sudo apt-get install bundler sudo apt-get install git |
Затем создайте новый каталог для своего бота, перейдите туда и загрузите файлы из Bitbucket со следующими командами:
mkdir bots cd bots git clone https:// [email protected] /benjbrandall/telegram-bot.git
mkdir bots cd bots git clone https:// [email protected] /benjbrandall/telegram-bot.git |
Не забудьте заменить URL выше (https: // benjbran …) URL-адресом вашего сервера. Вы найдете всю команду clone через Bitbucket, так что вам не придется делать это вручную.
Затем введите bundle для установки зависимостей gem, а затем ruby bot.rb чтобы запустить бот, который теперь будет работать постоянно.
Примечание. Если вы получаете доступ к своему серверу через SSH, вам нужно запустить бот с nohup ruby bot.rb и убедиться, что бот не перестает работать, когда сеанс SSH завершается. Теперь вы можете закрыть окно, зная, что ваш бот тихонько подает звуковой сигнал в фоновом режиме. Можно ли восстановить удаленные сообщения в ватсапе читайте в нашей статье.
Это всё, что нужно для создания вашего первого Бота в Telegram. По пути вы узнали о Ruby, gems, Telegram API и о том, как развернуть бота на сервере. Любые вопросы или предложения? Дай мне знать в комментариях! Сканировать штрих код вы можете скачав приложение.
Создание бота для Telegram — Служба Azure Bot — Bot Service
- Чтение занимает 2 мин
В этой статье
применимо к: Пакет SDK v4APPLIES TO: SDK v4
Вы можете настроить взаимодействие бота с другими пользователями с помощью программы для обмена сообщениями Telegram.You can configure your bot to communicate with people using the Telegram messaging app.
Получение доступа к BotFather для создания бота TelegramVisit the Bot Father to create a new Telegram bot
Создание нового Telegramного робота с помощью Bot-робота.Create a new Telegram bot using the Bot Father.
Создание бота TelegramCreate a new Telegram bot
Чтобы создать бот Telegram, отправьте команду /newbot
.To create a new Telegram bot, send command /newbot
.
Указание понятного имениSpecify a friendly name
Присвойте боту Telegram понятное имя.Give the Telegram bot a friendly name.
Указание имени пользователяSpecify a username
Присвойте боту Telegram уникальное имя пользователя.Give the Telegram bot a unique username.
Копирование маркера доступаCopy the access token
Скопируйте маркер доступа бота Telegram.Copy the Telegram bot’s access token.
Ввод маркера доступа бота TelegramEnter the Telegram bot’s access token
Перейдите к разделу Каналы бота на портале Azure и нажмите кнопку Telegram.Go to your bot’s Channels section in the Azure portal and click the Telegram button.
Примечание
Пользовательский интерфейс портала Azure будет выглядеть немного иначе, когда вы подключите бота к Telegram.The Azure portal UI will look slightly different if you have already connected your bot to Telegram.
Вставьте ранее скопированный маркер в поле Маркер доступа и нажмите кнопку Сохранить.Paste the token you copied previously into the Access Token field and click Save.
Бот настроен для взаимодействия с пользователями в Telegram.Your bot is now successfully configured to communicate with users in Telegram.
Как создать бота в Телеграмм и настроить автопостинг с сайта, ВКонтакте, Твиттера
Мессенджер Телеграмм имеет большую функциональность, которая не заканчивается отправкой сообщений от пользователя к пользователю. Расширяют возможности приложения, в том числе, боты, которые могут автоматизировать те или иные функции. Боты могут быть как крайне простые, так и сложные и многофункциональные. В рамках данной статьи рассмотрим, как создать бота в Телеграмм.
Оглавление: 1. Что такое боты в Телеграмм 2. Как создать бота в Телеграмм 3. Как настроить автопостинг в Телеграмм из ВКонтакте, с сайта и других сервисов
Что такое боты в Телеграмм
Бот для Телеграмм – это автоматизированная программа, внедренная непосредственно в канал, группу или чат мессенджера. Бот может выполнять самые разные функции, например:
- Рассылать анонсы статей с сайта после их публикации;
- Собирать заказы;
- Предоставлять информацию, которая в нем заложена, например, отвечать на некоторые вопросы.
Функциональность ботов в Телеграмм обширна, и с каждым годом они становятся все более «умными». Например, через некоторых ботов можно заказать еду, вызвать такси, узнать как пройти к тому или иному месту, получить консультацию по определенном вопросу и так далее. При этом боты работают мгновенно, то есть, отправив им сообщение, вы практически сразу получаете ответ, что крайне важно в ряде ситуаций.
Как создать бота в Телеграмм
Есть несколько способов создания собственного бота в Телеграмм. Первый подразумевает использование встроенных в мессенджер сервисов, которые позволяют создать простых по функциональности ботов, путем отправки команд в чат. Второй способ сложный – он подразумевает взаимодействие с API Телеграмм путем самостоятельного создания сценариев, иными словами, данный способ требует немалых познаний в программировании, но при этом можно создать функциональное решение.
Рассмотрим как создать бота в Телеграмм, используя сторонний сервис, то есть простым способом:
- Первым делом ищем в мессенджере бота под именем Manybot, для этого введите в окне поиска @manybot. Обнаружив данного пользователя, нажимаем Start;
- Далее нужно выбрать язык, на котором бот будет с вами взаимодействовать. Выбирайте русский, после чего появится полный список команд. Используйте команду /addbot, чтобы создать своего бота;
- Далее на экране появится инструкция, в которой указано, что для создания бота сначала потребуется обзавестись API-ключом у «отца ботов». Нажмите на ссылку @BotFather в окне сообщения, чтобы перейти к главному боту Телеграмм;
- В окне с «отцом ботов» отправьте сообщение /newbot, чтобы известить его о намерениях получить токен для нового бота;
Обратите внимание: Данный бот, в отличие от manybot, не локализован, и он будет отвечать на английском языке. - Далее главный бот Телеграмма предложит дать имя и техническое имя бота, которого вы создаете. Отправьте их поочередно, при этом обратите внимание, что техническое имя бота обязательно должно содержать в себе слово bot, чтобы пользователи могли отличить его от реального человека;
- Когда необходимая информация будет направлена «отцу ботов», он выдаст API-токен. Скопируйте его и вернитесь в чат к manybot, после чего отправьте ему скопированный API;
- Далее manybot проведет проверку по базе, определит соответствие и если API был введен верный, выдаст информацию, что токен для бота принят, после чего предложит рассказать о боте пару слов, то есть ввести его описание. Можно это сделать и направить боту, либо проигнорировать, использовав команду /skip.
Все, на этом бот создан. Manybot после успешного создания бота предложит направить ссылку на него, чтобы пользователи Телеграмм могли подписаться.
Как настроить автопостинг в Телеграмм из ВКонтакте, с сайта и других сервисов
Создав бота по описанной выше инструкции, можно настроить его на автоматическую публикацию информации, которая появилась на вашем (или чужом) сайте, в группе ВКонтакте, на Youtube-канале или странице в Twitter. Настраивается бот довольно просто, для этого достаточно:
- После создания бота по описанной выше инструкции, перейти в чат с ним и нажать Start, чтобы начать работать. После этого бот сообщит, что оформлена подписка, а поскольку вы являетесь владельцем данного бота, предложит его настроить;
- Чтобы настроить автоматический постинг информации с сайта, группы ВКонтакте или других ресурсов в бота, напишите команду /autoposting;
- Снизу появятся кнопки, позволяющие выбрать, с какого сервиса вы планируете настроить автоматический постинг сообщений. Рассмотрим в рамках данной инструкции вариант с автопостингом с сайта, но, в целом, с другими ресурсами отличаться ситуация не будет. Нажмите +RSS лента;
- Далее потребуется ввести ссылку на фид сайта, с которого будет вестись автоматический постинг в бота Телеграмм. Введите нужную страницу и отправьте ее боту; Важно: Настроить кросс-постинг из ВКонтакте в Телеграмм можно только с публичных страниц.
- Все, после этого бот пришлет подтверждение, что настройка завершена, и теперь информация о новых постах будет появляться непосредственно в чате с ботом.
Стоит отметить, что к одному боту можно подключить кросс-постинг информации из нескольких источников. Подобным образом можно удобно сформировать для себя RSS-ленту, куда будут сыпаться сообщения с интересных вам сайтов.
Загрузка…Python Telegram Bot: Как создать Telegram Bot с Python
(вы можете пропустить его, если уже знаете, что делать со своим ботом)
Боты повсюду. Кажется, еще вчера мы даже не знали об их существовании; теперь мы с трудом представляем нашу жизнь без них. Они стали широко популярны среди многочисленных активных пользователей мессенджеров, поскольку имеют различную сферу применения — от развлекательного контента, включая пошаговые игры и сбор бонусных баллов в ресторанах, до соблюдения диеты, отслеживания доставок и даже совершения платежей. для разных сервисов.
Почему они так популярны? В чем их секрет? Думаю, более актуальный вопрос — почему они удобнее приложения. И тому есть несколько причин.
1) Минималистичный и простой дизайн.
Ну, у бота просто не может быть красочного дизайна. Но вне всякого сомнения, по сравнению с многочисленными приложениями с разным дизайном, когда нужно помнить, где и что нажимать, бот более универсален и прост; он предлагает простое общение с помощью текстов.
2) Бот имеет минимум рекламы и ориентирован на потребности пользователей.
Вам не нужно устанавливать сотни приложений для каждой службы, если вы можете получить всю необходимую помощь от бота. Это особенно полезно для ресторанов и магазинов. Клиенты редко хотят устанавливать приложения из множества мест, которые они посетили. Из-за этого владельцы бизнеса упускают отзывы клиентов и теряют с ними связь. Если бы в каждом из этих мест был свой бот, доступный в разных мессенджерах, было бы удобнее и дружелюбнее для пользователей.Никто не любит заполнять хранилище своих телефонов ненужными приложениями, которые будут использоваться один или два раза. Однако клиентам необходимо взаимодействовать с владельцами сервисов, и они оценят это через свой любимый мессенджер.
3) Нет необходимости в регистрации, авторизации и постоянном повторном входе
Используя бота, пользователь проходит авторизацию только один раз, когда бот добавлен в чат. Клиент может использовать бота столько, сколько необходимо, а когда он больше не нужен, пользователь просто блокирует бота.Все просто! Пароль больше не сбрасывается.
Нет необходимости запоминать используемые пароли или логины. Добавление бота на сайт или в приложение увеличивает количество пользовательской аудитории, поскольку делает общение с клиентами и оказание им помощи намного проще и удобнее.
Итак, мы описали основные преимущества ботов, и теперь вы должны быть готовы создать своего собственного бота. Переходим к практике. Но сначала мы рассмотрим проблемы, которые необходимо решить на этапе подготовки к разработке.
Ускорьте вашу веб-разработку
.Обратитесь к опытному техническому партнеру.
Выше мы определили причины создания бота. В этой части мы планируем, как создать приложение и какие инструменты разработки использовать. Далее мы покажем, как создать бота Telegram на Python, и научим его переворачивать наше сообщение в обратном направлении.
Так как это руководство по боту Telegram для начинающих, мы запустим сервер с единственной конечной точкой, которая будет получать наши сообщения Telegram и давать ответ.
Для этого воспользуемся следующими инструментами:
- бутылка — для нашего сервера; простой и легкий WSGI micro web-framework
- запросов — для отправки запросов в Telegram. Запрос
Примечание: вы должны установить эти инструменты на свой компьютер. Они нам понадобятся позже. Для этого откройте консоль bash и установите ее через pip
pip install bottle requests.
-
ngrok
— это приложение, которое предоставляет нам общедоступные URL-адреса для нашего взаимодействия с Telegram WebHook на всем этапе разработки (информацию о WebHook см. Ниже).Это полезно, поскольку Telegram не сможет установить соединение с нашим локальным сервером, потому что мы не можем указать наш локальный адрес в конфигурации Telegram API.
Необходимо скачатьngrok
с официального сайта и положить установленное приложение в папку с проектом.
Если вам это нравится, изучите эту часть, где мы предоставим подробное руководство по разработке ботов Telegram и покажем полезные инструменты разработки Python для них.
Перво-наперво.Чтобы создать бота Telegram, вам необходимо зарегистрироваться в Telegram (очевидно). Я рекомендую использовать веб-клиент Telegram для тестирования основных концепций.
Откройте приложение Telegram, найдите @BotFather и начните чат. Отправьте команду / newbot и следуйте инструкциям. Выполнив начальные шаги, вы получите —
скважин, вот и все. На данный момент бот на 100% пассивен.
Вам необходимо начать разговор с вашим ботом. Откройте поиск и введите имя своего бота.Начните разговор, нажав кнопку / начать . Введите что-нибудь вроде «Привет». Это сообщение важно, так как это первое обновление, которое получит ваш бот.
Если это ваш первый опыт создания API-интерфейсов, вы можете легко понять эту идею, используя свой веб-браузер. Откройте новую вкладку в браузере и используйте URL-адрес API Telegram —
api.telegram. org / bot <ваш токен> / getUpdates
Когда вы открываете этот URL-адрес в своем веб-браузере, вы делаете запрос на сервер Telegram, который отвечает JSON.Ответ напоминает словарь Python. Вы должны увидеть что-то вроде этого:
{"ok": true, "result": [{"update_id": 523349956,
"message": {"message_id": 51, "from": {"id": 303262877, "first_name": "YourName"}, "chat": {"id": 303262877, "first_name": "YourName", "type": "private"}, "date": 1486829360, "text": "Hello"}}]}
Если вы откроете документацию по ботам и проверите раздел метода / sendMessage , вы заметите, что для этого метода требуются 2 дополнительных параметра: chat_id и text .В строке поиска браузера вы можете связать параметры, используя ? для первого и и для всех последующих. Сообщение будет выглядеть так —
/ sendMessage? Chat_id = 303262877 & text = test
Попробуйте получить ответ от своего бота, заменив chat_id на тот, который вы получите, позвонив по телефону / getUpdates . В моем случае это 303262877. Текстовый параметр зависит от вас. Запрос должен выглядеть так:
api.телеграмма. org / bot
(Вы можете пропустить эту часть, если знакомы с WebHook)
Короче говоря, WebHook — это Концепция API, набирающая популярность. Концепция WebHook проста. WebHook — это обратный вызов HTTP: HTTP POST, который происходит, когда что-то происходит; простое уведомление о событии через HTTP POST.
Чтобы объяснить немного больше, иногда взаимодействие между приложениями в сети требует немедленной реакции на событие, в то время как решения для постоянных и непрерывных подключений в основном громоздки, требовательны и трудны в поддержке.В этом случае лучшим и самым простым решением является немедленный обратный вызов через HTTP (чаще всего POST).
Другими словами, это решение обеспечивает ответ на любое событие внутри одного приложения посредством отправки HTTP-запроса POST в другое подключенное приложение, чтобы проинформировать его или заставить его ответить.
Эта точная концепция называется WebHook. Он широко используется для:
- получения данных в реальном времени
- получения данных и передачи их на
- обработки данных и передачи чего-то взамен
Кажется, что это лучшее решение для взаимодействия с клиентом Telegram (приложение Telegram ) с нашим проектом.
Наконец, мы приступаем к самой практической части, где вы сможете разработать бота Telegram.
Основная задача: научить нашего бота переворачивать наше сообщение в обратном направлении
Во-первых, создайте папку для нашего проекта бота.
Во-вторых, создайте файл bot.py для создания сервера бутылок.
Далее мы разрабатываем bot.py
из импорта бутылок run, post
@post ('/') # наша конечная точка на основе функции Python
def main ():
возвращение
если __name__ == '__main__':
запустить (хост = 'localhost', порт = 8080, отладка = True)
Попробуем запустить наш сервер.Для этого откройте bash в папке с ботом.
питон bot.py
В результате вы должны увидеть что-то вроде этого:
Затем откройте новую вкладку. На следующей вкладке мы запустим ngrok
./ngrok http
./ngrok http 8080
После этого вы увидите что-то вроде этого:
Теперь давайте настроим WebHook.
api.телеграмма. org / bot
- Примечание: чтобы найти URL-адрес ngrok, вам необходимо запустить ngrok. Затем на экране, аналогичном показанному ниже, вы найдете URL-адрес (он выделен на нашем скриншоте). Этот URL-адрес, который вы используете в ссылке для настройки WebHook.
Ответ на переход по ссылке должен быть следующим:
{"ok": true, "result": true, "description": "Webhook was set"}
Давайте проверим, удалось ли вам настроить WebHook. .Перейдите по этой ссылке, используя свой токен:
api. телеграмма. org / bot
Если все в порядке, вы увидите то же значение адреса ngrok перед ключом URL, который вы указали при настройке.
Поздравляю, жив!
Теперь нам нужно реализовать механизм запроса / ответа на сообщение.
В основном наша конечная точка получает данные в формате json. Обычно вы видите сообщение с данными.
из импорта бутылки run, post, request as bottle_request # <--- мы добавляем запрос бутылки
@Почта('/')
def main ():
data = bottle_request.json # <--- извлечь все данные запроса
печать (данные)
возвращение
если __name__ == '__main__':
запустить (хост = 'localhost', порт = 8080, отладка = True)
Это должно быть примерно так на вкладке вашей консоли, где запускается сервер.
{'update_id': , 'message': {'message_id': , 'from': {'id': <ваш идентификатор телеграммы>, 'is_bot': False, 'first_name': '<ваше имя в телеграмме>', 'last_name': '<...> ',' username ':' <...> ',' language_code ':' en-En '},' chat ': {' id ': ,' first_name ':' <. ..> ',' last_name ':' <...> ',' username ':' <...> ',' type ':' private '},' date ': 1535022558,' text ':' 1 '}}
Более подробную информацию о параметрах вы можете найти в официальной документации Telegram.
Теперь нам нужно извлечь chat_id
и текст
, чтобы перевернуть наше сообщение и отправить ответ.
из бутылки импортной (
запустить, опубликовать, ответ, запрос как bottle_request
)
def get_chat_id (данные):
"" "
Метод извлечения идентификатора чата из запроса телеграммы.
"" "
chat_id = данные ['сообщение'] ['чат'] ['идентификатор']
вернуть chat_id
def get_message (данные):
"" "
Метод извлечения идентификатора сообщения из запроса телеграммы.
"" "
message_text = data ['сообщение'] ['текст']
возврат message_text
def change_text_message (текст):
"" "
Чтобы перевернуть наше сообщение вспять."" "
текст возврата [:: - 1]
@Почта('/')
def main ():
data = bottle_request.json
answer_data = prepare_data_for_answer (данные)
return response # status 200 OK по умолчанию
Итак, мы уже подготовили ответ. Отправим его боту Telegram.
запросов на импорт
из импорта бутылок (
запустить, опубликовать, ответ, запрос как bottle_request
)
BOT_URL = 'https: //api.telegram.org / bot / '# <--- добавьте сюда свой токен телеграммы; это должно быть похоже на https://api.telegram.org/bot12345678:SOMErAn2dom/
def get_chat_id (данные):
"" "
Метод извлечения идентификатора чата из запроса телеграммы.
"" "
chat_id = данные ['сообщение'] ['чат'] ['идентификатор']
вернуть chat_id
def get_message (данные):
"" "
Метод извлечения идентификатора сообщения из запроса телеграммы.
"" "
message_text = data ['сообщение'] ['текст']
возврат message_text
def send_message (подготовленные_данные):
"" "
Подготовленные данные должны быть в формате json, которые включают как минимум chat_id и text.
"" "
message_url = BOT_URL + 'sendMessage'
Запросы.post (message_url, json = prepare_data) # не забываем делать запросы на импорт lib
def change_text_message (текст):
"" "
Чтобы вывернуть наше сообщение наизнанку
"" "
текст возврата [:: - 1]
def prepare_data_for_answer (данные):
answer = change_text_message (get_message (данные))
json_data = {
"chat_id": get_chat_id (данные),
"текст": ответ,
}
вернуть json_data
@Почта('/')
def main ():
data = bottle_request.json
answer_data = prepare_data_for_answer (данные)
send_message (answer_data) # <--- функция отправки ответа
return response # status 200 OK по умолчанию
если __name__ == '__main__':
запустить (хост = 'localhost', порт = 8080, отладка = True)
После всех приготовлений и кодирования, если все работает, попробуем пообщаться с нашим ботом.
Теперь давайте сделаем наш код более читабельным и реализуем структуру ООП.
запросов на импорт
из импорта бутылки Bottle, ответ, запрос как bottle_request
класс BotHandlerMixin:
BOT_URL = Нет
def get_chat_id (себя, данные):
"" "
Метод извлечения идентификатора чата из запроса телеграммы.
"" "
chat_id = данные ['сообщение'] ['чат'] ['идентификатор']
вернуть chat_id
def get_message (self, data):
"" "
Метод извлечения идентификатора сообщения из запроса телеграммы."" "
message_text = data ['сообщение'] ['текст']
возврат message_text
def send_message (сам, подготовленные_данные):
"" "
Подготовленные данные должны быть в формате json, которые включают как минимум chat_id и text.
"" "
message_url = self.BOT_URL + 'sendMessage'
request.post (message_url, json = подготовленные_данные)
класс TelegramBot (BotHandlerMixin, Bottle):
BOT_URL = 'https: // api.telegram.org/bot000000000:aaaaaaaaaaaaaaaaaaaaaaaaaa/ '
def __init __ (self, * args, ** kwargs):
super (TelegramBot, self) .__ init __ ()
self.route ('/', callback = self.post_handler, method = "POST")
def change_text_message (сам, текст):
текст возврата [:: - 1]
def prepare_data_for_answer (self, data):
message = self.get_message (данные)
answer = self.change_text_message (сообщение)
chat_id = self.get_chat_id (данные)
json_data = {
"chat_id": chat_id,
"текст": ответ,
}
вернуть json_data
def post_handler (сам):
data = bottle_request.json
answer_data = self.prepare_data_for_answer (данные)
self.send_message (answer_data)
ответ на ответ
если __name__ == '__main__':
app = TelegramBot ()
app.run (хост = 'localhost', порт = 8080)
Вот и все. Теперь вы создали работающего бота для Telegram на Python, и он даже может писать «гоночный автомобиль» наоборот. Поздравляю!
Ваш шанс быстрее выйти на рынок
Подпишитесь на нашу рассылку новостей
Было бы здорово обсудить с вами эту статью
следующий Тестирование вашего приложения Django с помощью PytestКак сделать создать простого бота Telegram с Voiceflow
Сегодня Telegram становится одним из самых важных приложений для обмена сообщениями в мире.Бесплатное программное обеспечение для обмена мгновенными сообщениями с открытым исходным кодом предлагает множество полезных функций, которые делают его подходящим для реализации сложных ботов, которые могут помочь нам различными способами. С момента его создания было несколько способов разработки ботов для Telegram, однако только один из них был ориентирован на CxD и обеспечение богатого общения. Благодаря новому API-интерфейсу Dialog Manager от Voiceflow платформа для разработки разговоров становится лучшим выбором для проектирования, разработки и интеграции чат-бота Telegram.
Предварительные требованияВот что вам понадобится для создания собственного бота Telegram с помощью Voiceflow
- Учетная запись Telegram
- Учетная запись Voiceflow
- Код Visual Studio
АрхитектураIn В этом примере мы собираемся использовать библиотеку Telegraf для проектов NodeJS для взаимодействия с нашим ботом Telegram. Как упоминалось выше, каждое взаимодействие пользователя с ботом Telegram будет отправляться в Voiceflow с помощью нашего API диспетчера диалогов.
Архитектура, используемая для создания этого опыта Создание собственного бота с помощью BotFatherВо-первых, нам нужно использовать botfather для создания нашего собственного бота в Telegram. BotFather позволяет создавать новые учетные записи ботов и управлять существующими в несколько простых кликов. Чтобы начать процесс создания своего бота, вам просто нужно поговорить с отцом бота, выполнив шаги, описанные ниже.
Чтобы открыть чат с бот-отцом, нажмите кнопку « start ».
Нам нужно будет создать нового бота, нажав команду / newbot. Затем вы можете назвать своего бота. В этом примере мы назвали наш «бот Voiceflow».
Это так просто. Настройка Telegram завершена! Не забудьте добавить свой токен Telegram в свой {% c-line%}. Env файл {% c-line-end%} в свойстве {% c-line%} TELEGRAM_TOKEN {% c-line-end%}.
Настройка проектаУстановите и запустите проект:
1. Клонируйте это репо:
{% c-line%} git clone
2. Установите зависимости:
{% c-line%} yarn install {% c-line-end%}
3. Запуск проекта:
{% c-line%} начало пряжи {% c-line-end%}
Написание кода бота Настройка Telegraf
Мы можем создать бота с помощью следующего кода линии:
Настройка голосового потокаПРИМЕЧАНИЕ: Важно отметить, что вам нужно будет создать общий тип проекта в Voiceflow, чтобы этот опыт работал.
Теперь давайте реализуем клиент Voiceflow для работы с облаком Voiceflow, используя его API Dialog Manager.
Функция {% c-line%} getclient () {% c-line-end%} вызывает {% c-line%} DialogManagerApi.getInstance {% c-line-end%} клиент REST API, который будет напрямую взаимодействовать с API диспетчера диалогов.
Как видите, некоторые значения будут добавлены в наш файл {% c-line%}. Env {% c-line-end%}. Давайте объясним, как получить эти переменные.
1.Идентификатор версии
Чтобы получить идентификатор версии, вам необходимо перейти в свой проект Voiceflow:
Затем скопируйте {% c-line%} VOICEFLOW_VERSION_ID {% c-line-END%} из URL-адреса в адресной строке. Когда вы находитесь в проекте Voiceflow, ваша адресная строка должна иметь URL-адрес в форме:
{% c-line%} https://creator.voiceflow.com/project/ {VOICEFLOW_VERSION_ID} / ... {% c -line-end%}
2. apiKey
Чтобы получить ключ API, мы должны перейти в нашу рабочую область, где мы создали наш общий проект.После этого перейдите в настройки рабочего места и перейдите на вкладку разработчика.
Затем мы должны нажать кнопку {% c-line%} Создать новый ключ API {% c-line-end%}, чтобы создать новый:
Вам необходимо добавить имя к новому ключу API, для например, {% c-line%} бот-телеграмма {% c-line-end%}. После того, как мы его заполнили, мы можем нажать кнопку {% c-line%} Подтвердить {% c-line-end%}:
Наконец, мы должны добавить эти переменные в нашу последнюю {% c-line%}. env файл {% c-line-end%}. Должно получиться так:
Все готово.Давайте продолжим с нашим кодом бота Telegram. Давайте заменим стандартный запуск воспроизведения на приведенный ниже, получив правильный повтор из Voiceflow:
Затем мы заменим высказывание {% c-line%} hi {% c-line-end%} на регулярное выражение, например {% c- строка%} (. +) {% c-line-end%}. Это значит, что бот будет слышать все. Весь полученный текст мы передаем непосредственно в Voiceflow, и мы управляем состоянием разговора: если он завершен или еще не завершен:
Метод ответа отвечает за отправку пользовательского ввода в Telegram в Voiceflow с использованием SDK клиента времени выполнения.Это позволяет нам обработать ответ:
В приведенном выше примере вы заметите различные типы ответов, включая {% c-line%} SPEAK {% c-line-end%}, {% c-line%} VISUAL { % c-line-end%} и {% c-line%} AUDIO {% c-line-end%} ответы.
Запуск бота Telegram Вы готовы протестировать этот опыт в Telegram Помогите нам, помогите вам!Хотите помочь нам улучшить этот опыт? Вы можете отправить PR, выполнив следующие действия.
- Создайте вилку этого репо
- Клонируйте вилку
- Код
- 🤓
- Протестируйте свои изменения
- Отправить PR!
Как видите, всего с 60 строками кода вы можете быстро оживить свой чат. Я надеюсь, что это даст вам лучшее понимание того, как можно использовать Voicefow для привнесения разговорного опыта в свои собственные интерфейсы и продукты. Удачного кодирования!
Voiceflow нанимает! 📢
Voiceflow ищет старшего разработчика, который хочет построить будущее интерактивных разговоров.Вы можете перейти по этой ссылке, чтобы подать заявку.
Создайте бота Telegram на Go за 9 минут | Франсуа Паупье | Запуск
1. Зарегистрируйте своего бота в Telegram
Во-первых, вам нужно сообщить Telegram, что вы хотите зарегистрировать бота. Для этого отправьте BotFather команду / newbot
. Вы получаете обратно жетонов
. Мы будем использовать его в нашем коде для аутентификации нашего приложения на серверах Telegram. Смотрите скриншот ниже. Храните свой токен в надежном месте - , то есть не передает его в вашу систему контроля версий.
Чтобы дважды проверить работу создания бота, вы можете запросить конечную точку / getMe
API Telegram.
Вы дали своему боту крутое изображение профиля, а также точное описание того, что он делает? Милая! Теперь давайте рассмотрим, как реализовать поведение вашего бота для взаимодействия с пользователями.
2. Обработка запросов пользователей
Следующим шагом является реализация бизнес-логики, которая должна выполняться всякий раз, когда пользователь взаимодействует с вашим ботом.
Прежде чем переходить непосредственно к коду, давайте посмотрим, что происходит, когда пользователь взаимодействует с вашим ботом в Telegram.
Telegram - это облачная служба обмена сообщениями. Когда вы отправляете кому-то сообщение в Telegram, серверы Telegram получают ваше сообщение и отправляют его в соответствующий чат. См. Мой GIF ниже:
Упрощенное представление об облачной природе службы обмена сообщениями Telegram.Анимированная версия.В двух словах: вы отправляете сообщение, затем серверы Telegram отправляют его в соответствующий чат, теперь ваш друг может его видеть. Ваш друг отправляет ответ, который обрабатывается серверами Telegram для передачи ответа в чат.
Статическая версияОбмен сообщениями в облаке позволяет вам получать доступ к чату с разных устройств. Опираясь на предыдущие концепции, давайте посмотрим, что происходит, когда вы отправляете сообщение боту в Telegram.
Каждый раз, когда вы отправляете сообщение боту, Telegram уведомляет URL-адрес веб-перехватчика о том, что для вашего бота доступно обновление.Затем ваш обработчик обрабатывает запрос пользователя и отправляет ответ в Telegram. В конечном итоге Telegram доставляет ваш бот-ответ пользователю. Взгляните на GIF ниже, чтобы получить представление:
Что происходит, когда вы отправляете сообщение боту Telegram (упрощенно), шаг за шагом. Взаимодействие с ботом пользователя <—>, статическая версия.Теперь вы получили важные концепции. Давайте приступим. Мы настроим веб-перехватчик, как только будем готовы к развертыванию нашего обработчика ботов.
3. Реализуйте свой обработчик
Задача обработчика
- обрабатывать входящие обновления Update
из Telegram API.Помните, что каждый раз, когда пользователь отправляет вашему боту сообщение, веб-перехватчик доставляет вашему обработчику
обновление
из Telegram.
Telegram Update
может содержать различную информацию: текстовое сообщение, голосовое сообщение, видео или документ, и многие другие. В этой статье мы увидим, как обрабатывать текстовые сообщения. Не стесняйтесь исследовать другие варианты с помощью бота для аудио, видео или обработки документов!
Поскольку область действия обработчика
в основном предназначена для обработки ответов и выполнения запросов API, язык программирования Go является идеальным инструментом.
Telegram Update
может быть намекающим объектом со всеми его полями. К счастью, мы можем представить это с помощью более простой структуры в Go для решения нашего варианта использования:
Аналогичным образом мы определяем структуру сообщения:
Облегченная структура сообщения Telegram в Go.И, наконец, структура чата:
Облегченная структура чата Telegram на Go. С этими тремя структурами; Update
, Message
и Chat
, мы готовы обрабатывать сообщения наших пользователей.
Вы заметили `json:" something "`
справа от каждого поля структуры. Это указывает декодеру JSON, как анализировать входящий запрос Telegram в соответствующую структуру. Например, `json:" update_id "`
в структуре Update
указывает декодеру JSON искать ключ с именем update_id
и устанавливать соответствующее значение для атрибута UpdateId
нашей структуры Go Update.
Теперь мы можем легко декодировать входящий запрос, содержащий обновление из Telegram.
Теперь, когда мы проанализировали запрос, мы можем получить доступ к Message.Text
и сделать некоторую магию. Пришло ваше время здесь сиять; теперь вы можете разработать функции, которые делают вашего бота выдающимся.
Ниже приведен пример RapGeniusBot, бота, который генерирует тексты рэп-музыки на основе Message.Text
входящего обновления Update
. Основная функция моего обработчика:
Для подробностей реализации каждой функции полный код RapGeniusBot доступен в моем репозитории.
Хорошо, теперь, когда вы выполнили некоторую обработку на основе значения сообщения, вы готовы отправить сообщение обратно в чат. Давайте увеличим масштаб функции sendTextToTelegramChat
, чтобы увидеть, как мы можем это сделать:
Сосредоточьтесь на строках с 5 по 10. Здесь мы отправляем наше сообщение в чат, отправляя запрос POST
на явную конечную точку / sendMessage
из API Telegram. Для этого вам необходимо пройти аутентификацию с помощью токена бота
, который BotFather предоставил вам во время создания бота.
Подведем итоги; Теперь у вас есть функция обработчика, которая выполняет всю обработку,
- Ваш обработчик декодирует входящие запросы Telegram,
- Ваш обработчик может получить доступ к полям
Update
, таким какMessage.Text
, для выполнения некоторых преобразований, например генерации тексты рэп-музыки на примере RapGeniusBot. - Ваш обработчик в конечном итоге отправляет сообщение обратно в чат, который инициировал беседу.
Сейчас отличное время, чтобы добавить несколько тестов, чтобы убедиться, что ваш обработчик работает должным образом.Например, мы можем проверить, правильно ли наш обработчик анализирует входящие запросы Telegram. Это довольно просто, используя пакет net / http / httpest
в Go. Запишем наш тест в отдельный тестовый файл, например parse_update_test.go
.
Хотите написать больше тестов, чтобы убедиться, что все работает должным образом? Telegram проделывает фантастическую работу, предоставляя разработчикам образцы JSON обновления для использования в наших тестовых примерах. Обязательно ознакомьтесь с их документацией, чтобы создать надежный обработчик.
Отлично! Весь этот код прекрасно живет на нашей машине. Давайте развернем обработчик
и сделаем вашего бота доступным в Telegram.
Не волнуйтесь; вы уже готовы на 95%. 😉
4. Разверните свой обработчик
Две возможности,
- У вас есть собственный сервер, и вы знаете, как настроить обработчик для прослушивания заданного порта. Вам также удобно настраивать сертификаты.
- Вы не особо разбираетесь в системном администраторе.
Если вы узнаете себя в 1., Telegram предлагает подробную документацию о том, как настроить веб-перехватчик.
Я сосредоточусь на варианте 2. Мы будем использовать облачного провайдера для развертывания нашего обработчика как услугу, то есть вам выставляют счет только тогда, когда ваш обработчик фактически использует ресурсы. Учитывая характер механизма push-уведомления о веб-перехватчике, с вас не взимается плата, если ваш бот не используется, что хорошо по сравнению с постоянно включенным сервером. Недостатком является потенциально более высокое время отклика. Когда обработчик вызывается впервые за некоторое время, холодный запуск может занять несколько секунд.
Все основные облачные провайдеры предоставляют функцию как услугу: облачная функция в Google Cloud, AWS Lambda и функция Azure в MS Azure.
Выберите оружие по своему выбору. Я продолжаю использовать облачную функцию Google.
В консоли Google Cloud сначала выберите проект (создайте его, если вы новичок в Google Cloud). Затем нажмите в верхнем левом меню бургеров и найдите Cloud Function .
Найдите функцию Cloud в разделе вычислений.Затем нажмите кнопку «Создать функцию».
Теперь давайте завершим некоторую информацию о конфигурации;
- Имя - задает явное имя для вашей функции, например,
телеграмма-бот-обработчик
. - Выделено памяти - советую поэкспериментировать, начиная с наименьшего значения 128 MiB должно хватить. Go не требует памяти, особенно если вы делаете всего несколько запросов в обработчике или выполняете простую обработку строк. Кроме того, вполне вероятно, что ваш обработчик - всего лишь посредник, передающий запрос другому сервису.В примере RapGeniusBot мой обработчик вызывает другой API, чтобы получить тексты песен на основе текста сообщения для обработки.
- Триггер - не забудьте выбрать HTTP .
- Аутентификация - Установите флажок «Разрешить вызовы без аутентификации». Это позволит Telegram отправлять обновление вашему обработчику через веб-перехватчик.
Прокрутите еще немного, и вы сможете отправить исходный код для выполнения при вызове функции;
- Исходный код - Выберите «Встроенный редактор»
- Время выполнения - Выберите среду выполнения, соответствующую вашему коду Go.
- Function.go - Скопируйте весь код обработчика (не забудьте про импорт) и вставьте его в текстовое поле Function.go.
- Функция для выполнения - Напишите функцию, которую серверы Google должны вызывать при вызове вашей облачной функции. Вот ваш обработчик, , например,
HandleTelegramWebHook
.
Теперь щелкните «Переменные среды, сеть, таймауты и многое другое».
Появится набор параметров, настройте Регион и Тайм-аут в соответствии с любыми вашими требованиями.
- Настройки Ingress - Убедитесь, что установлен флажок «Разрешить весь трафик», чтобы серверы Telegram могли получить доступ к вашему обработчику.
И последнее, но не менее важное: установите переменную среды, которая нужна вашему коду. Вам нужно, по крайней мере, установить TELEGRAM_BOT_TOKEN
, который BotFather дал вам в части 1.
Нажмите «создать». Ваша облачная функция будет готова через несколько секунд.
Теперь перейдите на вкладку «Триггер» вновь созданной облачной функции и скопируйте URL-адрес для вызова вашей функции.Мы скажем Telegram отправить Update
на этот URL-адрес при определении веб-перехватчика на следующем шаге.
Вот и все; вы закончили со своим облачным провайдером! Осталось только настроить URL-адрес веб-перехватчика вашего бота Telegram.
5. Установите веб-перехватчик с помощью Telegram API
Последний шаг!
Теперь, когда мы создали нашу облачную функцию, нам нужно зарегистрировать ее URL-адрес в качестве URL-адреса веб-перехватчика Telegram. Таким образом, Telegram может отправить Update
для нашего бота по URL-адресу, который прослушивает наш обработчик
.
Это 3 строки в вашей оболочке.
В ответ от Telegram API вы получите красивый {«ok»: true, «result»: true, «description»: «Webhook was set»}.6. Наслаждайтесь.
Поздравляю, ваш бот готов! 🔥👏
Пообщайтесь с ним в Telegram и поделитесь с друзьями. К этому моменту вы создали потрясающего бота Telegram. Напишите комментарий о своем боте; Не могу дождаться, чтобы увидеть все, что вы разработали!
Чат-ботов для Telegram - Создайте своего первого чат-бота
Одним из больших преимуществ чат-ботов является то, что, в отличие от приложений, их не нужно скачивать, не нужно обновлять, и они не занимают места в памяти телефона.
Во-вторых, мы можем интегрировать несколько ботов в один чат. Таким образом мы избегаем прыжков из одного приложения в другое в зависимости от того, что нам нужно в каждый момент.
Основные последствия? Более приятный пользовательский интерфейс и более быстрое и простое взаимодействие со службой поддержки.
Как создать бота для Telegram
Обо всем по порядку. Вам необходимо зарегистрироваться в Telegram (очевидно). Я рекомендую использовать веб-клиент Telegram, чтобы проверить основы.
Откройте приложение Telegram, найдите @BotFather и начните чат.Отправьте команду / newbot и следуйте инструкциям. Выполнив начальные шаги, вы получите:
- Собственный токен
- Telegram api URL - api.telegram.org/<ваш токен>
- ссылка на документацию
На данный момент бот на 100% пассивен.
Интеграция с Chatcompose
Для продолжения вам понадобится учетная запись ChatCompose. Вы можете зарегистрироваться здесь.
После регистрации перейдите в раздел «Установка»> «Интеграции».Там вы увидите возможность интеграции с Telegram.
Вы увидите следующее:
Введите токен, созданный с помощью BotFather, и сохраните его.
Маркер должен выглядеть примерно так: 000000: AAAAAAAAAAAAA, где нули - это числа, а As - буквы.
После сохранения мы зарегистрируем маршрут нашего бота в телеграмме. Скопируйте маршрут с нашей платформы и вставьте его в этот URL вместе со своим токеном.
api.telegram.org/bot/setWebHook?url=
URL-адрес должен выглядеть примерно так:
api.telegram.org/bot000000:AAAAAAAAAAAAA/setWebHook?url=https://panel.chatcompose.com/telegram/yourbot
Перейти к этому маршруту. Ответ должен вернуть следующее:
{"ok": true, "result": true, "description": "Webhook был установлен"}
Чтобы проверить, была ли конфигурация успешной, вы можете перейти к:
api.telegram.org/bot/getWebhookInfo
Вызов должен вернуть только что настроенный URL-адрес chatcompose.
Если вы еще не ввели токен, созданный с помощью BotFather в ChatCompose, сделайте это сейчас.
Следующие шаги
Ваш бот должен быть установлен и запущен в Telegram. Не забудьте настроить автоматические ответы в ChatCompose в разделе База данных.
Щелкните адрес вашего бота, созданный BotFather (t.me/nameofyour), и начните с ним взаимодействовать.
Научитесь создавать своего первого бота в Telegram с Python
Представьте себе, есть бот для сообщений, который отправит вам случайное изображение милой собаки, когда вы захотите, звучит круто, правда? Давай сделаем!
В этом руководстве мы будем использовать Python 3, python-telegram-bot, и общедоступный API RandomDog .
В конце этого урока у вас будет бот для снятия стресса, который будет отправлять вам милые изображения собак каждый раз, когда вам это нужно, ура!
Начало работы
Прежде чем мы начнем писать программу, нам нужно сгенерировать токен для нашего бота. Токен необходим для доступа к Telegram API и установки необходимых зависимостей.
1. Создайте нового бота в BotFather
Если вы хотите создать бота в Telegram, вы должны сначала «зарегистрировать» своего бота, прежде чем использовать его.Когда мы «зарегистрируем» нашего бота, мы получим токен для доступа к Telegram API.
Перейдите в BotFather (если вы откроете его на рабочем столе, убедитесь, что у вас установлено приложение Telegram), затем создайте нового бота, отправив команду / newbot
. Следуйте инструкциям, пока не получите имя пользователя и токен для своего бота. Вы можете перейти к своему боту, перейдя по этому URL: https://telegram.me/YOUR_BOT_USERNAME
, и ваш токен должен выглядеть так.
704418931: AAEtcZ *************
2.Установите библиотеку
Поскольку мы собираемся использовать библиотеку для этого руководства, установите ее с помощью этой команды.
pip3 install python-telegram-bot
Если библиотека успешно установлена, то все готово.
Напишите программу
Давайте сделаем нашего первого бота. Этот бот должен возвращать изображение собаки, когда мы отправляем команду / bop
. Чтобы сделать это, мы можем использовать общедоступный API из RandomDog , чтобы помочь нам сгенерировать случайные изображения собак.
Рабочий процесс нашего бота очень прост:
доступ к API -> получение URL-адреса изображения -> отправка изображения
1. Импортируйте библиотеки
Сначала импортируйте все необходимые библиотеки.
из telegram.ext import Updater, CommandHandler
запросы на импорт
import re
2. Получите доступ к API и получите URL-адрес изображения
Давайте создадим функцию для получения URL-адреса. Используя библиотеку запросов, мы можем получить доступ к API и получить данные json.
contents = requests.get ('https://random.dog/woof.json') .json ()
Вы можете проверить данные json, перейдя по этому URL-адресу: https://random.dog/ woof.json
в вашем браузере. На экране вы увидите что-то вроде этого:
{"url": "https://random.dog/*****.JPG"}
Получите URL-адрес изображения, так как нам нужно, чтобы этот параметр был возможность отправить изображение
image_url = contents ['url']
Оберните этот код в функцию с именем get_url ()
.
def get_url ():
content = requests.get ('https://random.dog/woof.json') .json ()
url = содержимое ['url']
return url
3. Отправьте изображение
Чтобы отправить сообщение / изображение, нам нужны два параметра: URL изображения и идентификатор получателя - это может быть идентификатор группы или идентификатор пользователя.
Мы можем получить URL изображения, вызвав нашу функцию get_url ()
.
url = get_url ()
Получите идентификатор получателя с помощью этого кода:
chat_id = update.message.chat_id
После того, как мы получим URL изображения и идентификатор получателя, пора отправить сообщение, которое является изображением.
bot.send_photo (chat_id = chat_id, photo = url)
Оберните этот код в функцию с именем bop
и убедитесь, что ваш код выглядит так:
def bop (bot, update):
url = get_url ()
chat_id = update.message.chat_id
bot.send_photo (chat_id = chat_id, photo = url)
4.
Основная программа
Наконец, создайте еще одну функцию с именем main
для запуска нашей программы. Не забудьте заменить YOUR_TOKEN
на токен, который мы создали ранее в этом руководстве.
def main ():
updater = Updater ('ВАШ_ТОКЕН')
dp = updater.dispatcher
dp.add_handler (CommandHandler ('боп', боп))
updater.start_polling ()
updater.idle ()
если __name__ == '__main__':
main ()
В конце ваш код должен выглядеть так:
из telegram.ext import Updater, InlineQueryHandler, CommandHandler
запросы на импорт
импорт ре
def get_url ():
содержимое = запросы.получить ('https://random.dog/woof.json') .json ()
url = содержимое ['url']
возвратный URL
def bop (бот, обновление):
url = get_url ()
chat_id = update.message.chat_id
bot.send_photo (chat_id = chat_id, photo = url)
def main ():
updater = Updater ('ВАШ_ТОКЕН')
dp = updater.dispatcher
dp.add_handler (CommandHandler ('боп', боп))
updater.start_polling ()
updater.idle ()
если __name__ == '__main__':
main ()
5. Запускаем программу
Отлично! Вы закончили свою первую программу.А теперь проверим, работает ли. Сохраните файл, назовите его main.py
, затем запустите его с помощью этой команды.
python3 main.py
Перейдите к своему боту Telegram по этому URL-адресу: https://telegram.me/YOUR_BOT_USERNAME
. Отправьте команду / bop
. Если все работает идеально, бот ответит случайным изображением собаки. Симпатично, правда?
Обработка ошибок
Отлично! Теперь у вас есть бот, который будет присылать вам изображение милой собачки, когда вы захотите.
Это еще не все! API RandomDog не только генерирует изображения, но также видео и GIF-файлы. Если мы обращаемся к API и получаем видео или GIF-файл, возникает ошибка, и бот не отправляет его вам.
Давайте исправим это, чтобы бот отправлял сообщение только с вложенным изображением. Если мы получим видео или GIF, мы снова будем вызывать API, пока не получим изображение.
1. Сопоставьте расширение файла с помощью регулярного выражения
Мы собираемся использовать регулярное выражение для решения этой проблемы..] *) $ ", url) .group (1) .lower () URL возврата
2. Измените код
Отлично! Теперь для последней части замените строку url = get_url ()
в функции bop ()
на url = get_image_url ()
, и ваш код должен выглядеть так:
из telegram.ext import Updater , InlineQueryHandler, CommandHandler
запросы на импорт
импорт ре
def get_url ():
content = requests.get ('https://random.dog/woof.json') .json ()
url = содержимое ['url']
возвратный URL
def get_image_url ():
allowed_extension = ['jpg', 'jpeg', 'png']
file_extension = ''
пока file_extension не входит в allowed_extension:
url = get_url ()
file_extension = re..] *) $ ", url) .group (1) .lower ()
возвратный URL
def bop (бот, обновление):
url = get_image_url ()
chat_id = update.message.chat_id
bot.send_photo (chat_id = chat_id, photo = url)
def main ():
updater = Updater ('ВАШ_ТОКЕН')
dp = updater.dispatcher
dp.add_handler (CommandHandler ('боп', боп))
updater.start_polling ()
updater.idle ()
если __name__ == '__main__':
main ()
Красиво! Все должно работать отлично. Вы также можете проверить мою учетную запись GitHub, чтобы получить код.
Наконец, поздравляю с окончанием этого урока, плюс у вас теперь есть крутой бот Telegram.
Пожалуйста, оставьте комментарий, если вы считаете, что в моем коде или написании есть ошибки, потому что я все еще учусь и хочу поправиться.
Спасибо и удачи в тренировках! 🙂
Replit Docs - Telegram бот
Если вы когда-либо пользовались онлайн-форумом, то, возможно, видели, что иногда есть способы публиковать сообщения, отличные от того, чтобы делать это прямо на форуме, например, по электронной почте.
В этом руководстве мы создадим общедоступную доску сообщений, и вместо того, чтобы пользователи публиковали сообщения непосредственно на сайте, они будут отправлять их боту Telegram.
Сообщения будут просто содержать текст сообщения, но мы предоставим дополнительную информацию о том, как использовать другие данные, такие как имена пользователей. Мы оставим это вам в качестве упражнения по расширению функциональности.
Предварительные требования
Для использования в этом руководстве:
- Вы должны быть знакомы с основами программирования на Python.
- Вам потребуется загрузить Telegram и учетную запись.
- Вам также понадобится учетная запись Replit, поэтому создайте ее сейчас, если вы еще этого не сделали.
Было бы полезно, если бы вы знакомы с базой данных Replit, но это не обязательно.
Регистрация бота
Нам нужно зарегистрировать нашего бота в Telegram, чтобы сгенерировать учетные данные, которые мы будем использовать для подключения к Telegram API. Каждый бот требует, чтобы за него отвечала учетная запись пользователя. Это можно сделать с помощью официального управляющего бота Telegram под названием «BotFather».
Для этого сначала войдите в свой клиент Telegram и выполните поиск «@bot» в поиске чата. Обязательно выберите подтвержденный аккаунт (тот, рядом с которым стоит галочка), иначе мы можем поговорить с кем-то, выдающим себя за официального BotFather.
Чтобы активировать BotFather, нажмите «Пуск».
Мы можем отправить BotFather команду «/ newbot», чтобы начать рабочий процесс создания бота.
Он спросит у нас:
Имя бота, которое будет отображаться в верхней части чата нового бота, например, «Replit Quick-start Tutorial».
Имя пользователя, которое будет использоваться для уникальной ссылки на бота, например, «@replit_tutorialbot».
Примечание: полезно иметь короткое имя пользователя, чтобы пользователям было проще вводить его, особенно если вы планируете добавить встроенный режим.
После того, как мы ответим на все вопросы, BotFather отправит нам наш токен аутентификации, который будет выглядеть примерно так: 110201543: AAHdqTcvCh2vGWJxfSeofSAs0K5PALDsaw
.
Обратите внимание, что вся строка (двоеточие и обе строки по обе стороны от него) является токеном.
Создание интерфейса бота
Теперь мы можем приступить к написанию той части программы, которая обрабатывает запросы из Telegram. Создайте новый ответ и выберите Python в раскрывающемся списке языков.
Нашему боту необходимо взаимодействовать с Telegram. Нам понадобится доступ к Telegram REST API. Есть много способов сделать это, но в рамках этого руководства мы будем использовать удобную библиотеку, которая обтекает API.
Прежде чем мы продолжим, нам нужно сделать наш токен доступным для использования нашим ботом в дальнейшем. Создайте переменную среды TOKEN
, щелкнув значок замка на боковой панели, как показано ниже, и вставьте свой токен бота, который вы отметили ранее, что-то вроде 110201543: AAHdqTcvCh2vGWJxfSeofSAs0K5PALDsaw
:
Это гарантирует, что наш токен доступен как переменная среды и что к нему не смогут получить доступ люди, публично просматривающие ответ.
Создание баребонного бота
Теперь, когда мы все настроены, можно приступить к программированию! Мы начнем со следующего в нашем файле main.py
:
импорт ОС
из импорта телеграммы Обновить
из telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext
def help_command (обновление: Обновление, контекст: CallbackContext) -> Нет:
htext = '' '
Добро пожаловать
Отправьте сообщение, чтобы сохранить его.
Отправить / получить, чтобы получить самое последнее сообщение '' '
Обновить.message.reply_text (htext)
def main ():
updater = Updater (os.getenv ("ТОКЕН"))
диспетчер = updater.dispatcher
dispatcher.add_handler (CommandHandler ("начало", help_command))
dispatcher.add_handler (CommandHandler ("справка", help_command))
updater.start_polling ()
updater.idle ()
если __name__ == '__main__':
основной ()
Вверху мы импортируем os
, чтобы получить токен из переменной окружения.
Затем мы импортируем классы из библиотеки Telegram.
Комментарии, начинающиеся с #upm
, не являются обязательными. Они используются Replit для загрузки правильного пакета. В общем, он не нужен, но здесь он нужен, потому что подобных библиотек Telegram очень много.
Функция help_command
запускается всякий раз, когда пользователь отправляет нам команду «/ start» или «/ help». «/ start» также автоматически запускается, когда к вашему боту присоединяется новый пользователь (как мы делали ранее с BotFather). Бот знает, как использовать эту функцию, потому что мы сообщим об этом позже в теле функции main
.
Основная функция
инициализирует для нас программу обновления, используя наш токен.
updater = Updater (os.getenv ("TOKEN"))
Программа обновления - это класс, который будет постоянно проверять Telegram на наличие новых сообщений для нашего бота.
Когда программа обновления получает новое сообщение, она передает его диспетчеру. Диспетчер проверяет, есть ли у нас подходящий обработчик для сообщения. Как упоминалось выше, мы определяем наш для обработки команд «/ start» и «/ help».Мы делаем это с помощью функции add_handler
, например:
dispatcher.add_handler (CommandHandler ("начало", help_command))
и
dispatcher.add_handler (CommandHandler ("справка", help_command))
Для простоты: команда «/ start» и команда «/ help» имеют здесь один и тот же обработчик, но при желании вы можете выбрать другую функцию для обработки каждой из них.
Затем нам нужно фактически сказать программе обновления, чтобы она начала проверять наличие новых сообщений.Мы достигаем этого с помощью этой строки:
updater.start_polling ()
Важно знать, что start_polling
- это неблокирующая функция. Это означает, что здесь код не останавливает выполнение. Это будет продолжаться до тех пор, пока программа не завершится.
Другими словами, если мы оставим эту строку в качестве последней строки основной функции
, код будет выполнен, а затем немедленно завершится, потому что ничто другое не блокирует его. Итак, чтобы наш бот слушал, мы используем программу обновления линии .idle ()
, чтобы заблокировать скрипт, пока мы слушаем.
Функции регистрации
Согласно тексту справки, бот должен сделать две вещи.
Если вы отправляете сообщение боту, он должен как-то его сохранить.
Если вы отправите боту команду «/ fetch», он должен отправить вам последнее сообщение.
Для этого мы будем использовать базу данных «ключ-значение» Replit. Начните с импорта API.
из реплита импорт БД
db
- это объект, который ведет себя как словарь, но сохраняет свое содержимое между запусками.Он также сериализует свои ключи в виде строк.
Поскольку мы хотим хранить зарегистрированные сообщения в определенном порядке, но объект db по своей сути не упорядочен, давайте создадим вспомогательную функцию, которая может получить самый большой ключ (при условии, что мы будем использовать только числовые индексы). Добавьте эту функцию перед определением функции help_command
:
def latest_key ():
ks = db.keys ()
если len (ks):
вернуть max (map (int, ks))
еще:
возврат -1
latest_key
получает все ключи от нашей db.Если есть ключи, преобразуйте их все в целые числа и верните самый большой из них. Если ключей нет, вернет -1
.
Теперь мы можем создать обработчик, который записывает сообщения пользователя в базу данных. Добавьте эту функцию после определения функции help_command
:
def log (обновление: Обновление, контекст: CallbackContext) -> Нет:
db [str (latest_key () + 1)] = update.message.text
Получает последний ключ из базы данных, увеличивает его на единицу и устанавливает новую пару ключей с сообщением.
Однако это не будет выполнено, пока мы не зарегистрируем обработчик, поэтому добавьте следующую строку после других строк dispatcher.add_handler (...)
:
dispatcher.add_handler (MessageHandler (Filters.text & ~ Filters.command, log))
Вы можете заметить, что MessageHandler
используется вместо CommandHandler
. Это более общий обработчик, который выбирает сообщения на основе предоставленных вами флагов. В этом случае он обрабатывает сообщения, содержащие текст, но не команды.
Теперь мы можем регистрировать сообщения, но пока не можем их видеть. Давайте добавим обработчик, который позволяет пользователю получить последнее сообщение. Добавьте эту функцию после определения функции log
:
def fetch (обновление: Обновление, контекст: CallbackContext) -> Нет:
update.message.reply_text (db.get (str (latest_key ()), 'Пока сообщений нет.'))
Мы можем зарегистрировать его вместе с другими обработчиками команд. Добавьте его после существующего файла dispatcher.add_handler (...)
строк:
dispatcher.add_handler (CommandHandler ("выборка", выборка))
Сделайте веб-интерфейс
Теперь, когда у нас есть работающий бот, мы хотим добавить для него веб-интерфейс. Мы будем использовать инструмент Flask. Мы можем включить следующий код после других операций импорта и до определения функции latest_key
.
из математического импорта ceil
из флакона import render_template
из фляги импорт фляги
app = Flask (__ имя__)
@ app.route ('/')
@приложение.маршрут ('/ ')
def home (page = None):
ks = отсортировано (map (int, db.keys ()))
pages = ceil (len (ks) / 10)
если страница отсутствует:
page = страницы
если страница <страницы:
next_page = page + 1
еще:
next_page = Нет
если страница> 1:
prev_page = page - 1
еще:
prev_page = Нет
messages = tuple (db [str (key)] для ключа в ks [(page-1) * 10: page * 10])
return render_template ('home.html', messages = messages, next_page = next_page, page = page, prev_page = prev_page)
Это определяет небольшое приложение Flask.Replit позаботится об импорте нашего Flask. В этом уроке мы сделаем только одну страницу.
Мы сообщаем Flask, как страница должна быть доступна с помощью специальных декораторов. @ app.route ('/')
говорит, что когда пользователь обращается к https://example.com
, он будет обслуживать этот обработчик. В этом случае для переменной page будет по умолчанию None.
@ app.route ('/
говорит, что когда пользователь получает доступ к чему-то вроде https://example.com/4
, он откроет страницу 4 зарегистрированных сообщений.В этом случае для переменной page будет присвоено значение 4.
Это пока не сработает, потому что нашего шаблона home.html
не существует. Давайте создадим это сейчас в папке с названием "templates" (т.е. templates / home.html):
Сообщения - Страница {{page}}
{% для сообщения в сообщениях%}
- {{msg | escape}}
{% endfor%}
{% if prev_page%} Предыдущая страница {% endif%}
{% if prev_page и next_page%} | {% endif%}
{% if next_page%} Следующая страница {% endif%}
Этот шаблон выводит страницу зарегистрированных сообщений и ссылки на следующую или предыдущую страницу внизу.
Для шаблона требуется переменная page для номера страницы и массив "сообщений", которые просматриваются и отображаются в виде списка. Он также принимает переменные «prev_page» и «next_page», которые мы используем для создания ссылок на предыдущую и следующую страницу, если они существуют соответственно. Все они предоставляются в нашей функции маршрута выше, когда мы запускаем render_template
.
Как рассчитать максимальное количество страниц?
страниц = ceil (len (ks) / 10)
То есть мы делим количество ключей в нашей базе данных Replit на десять и округляем его в большую сторону.Мы также можем использовать это число по умолчанию. Таким образом, если кто-то посетит простой маршрут «/», мы просто отобразим последнюю страницу.
, если страница отсутствует:
page = pages
Мы знаем, что последние сообщения будут «самыми последними», потому что мы отсортировали их в порядке возрастания в предыдущей строке.
«prev_page» и «next_page» - это текущая страница, уменьшенная или увеличенная, если они являются допустимыми номерами страниц (в противном случае установлено значение «Нет», чтобы шаблон не отображал их).
Собираем все вместе
Если мы запустим нашу программу сейчас, веб-приложение Flask еще не будет работать. Flask необходимо прослушивать запросы аналогично библиотеке Telegram. Обычно мы можем завершить программу с помощью app.run ()
, чтобы запустить сервер Flask.
Проблема в том, что эта строка кода никогда не будет достигнута при нормальных обстоятельствах, потому что у нас есть строка updater.idle ()
, блокирующая наш код до этого. Чтобы решить эту проблему, мы можем заменить эту строку строкой, которая запускает наш сервер Flask на переднем плане.Это потому, что единственная причина, по которой у нас была строка, заключалась в том, чтобы остановить преждевременный выход программы, и Flask все равно выполняет то же самое. Итак, давайте изменим его на это:
app.run (хост = '0.0.0.0', порт = 8080)
Параметры, хост и порт, установленные на эти значения, позволяют Replit получить доступ к серверу и обычно должны отображать окно с содержимым нашей страницы. Теперь мы можем просматривать сообщения, отправленные этому боту пользователями.
Сделай сам
Если вы следовали инструкциям, у вас будет собственная версия ответа, которую нужно расширить.В противном случае начните с нашего.
Куда дальше?
Попробуйте использовать команду «/ setcommands» в BotFather, чтобы добавить быстрое меню для команд в вашем боте. Здесь описано использование.
Если нам нужен доступ к имени пользователя, отправляющему сообщение, мы могли бы получить к нему доступ так же, как и к тексту сообщения:
имя пользователя = update.message.from_user.username
Список доступных дополнительных данных можно найти в документации.
Как создать базового бота Telegram с Python 3
Если вы являетесь пользователем Telegram, в какой-то момент у вас обязательно был «разговор» с чат-ботом. Обладая удивительной настраиваемостью, боты Telegram предлагают множество преимуществ - будь то автоматизация задач или просто небольшое развлечение с играми в вашей чат-группе.
Хотя для некоторых разработка бота может показаться сложной задачей, на самом деле это не так. При правильном планировании вы можете настроить бота Telegram менее чем за час! Вот как создать простого бота Telegram, который при запросе выводит милые картинки интернет-кошек.
Начало работы
В этом руководстве мы собираемся использовать Python 3, библиотеку python-telegram-bot и requests, а также TheCatAPI.
У каждого бота в Telegram есть уникальный токен, который помогает ему общаться с Bot API, чтобы использовать интерфейс обмена сообщениями приложения. Bot API, одна из самых популярных функций Telegram среди разработчиков, позволяет использовать его сообщения в качестве интерфейса.
Чтобы получить токен, начните разговор с @BotFather, который, как следует из названия, является официальным ботом, который позволяет вам создавать и настраивать собственных ботов.Вы можете получить доступ к боту, используя данную ссылку или, альтернативно, выполнить поиск «@botfather» в Telegram.
Оказавшись в чате, создайте своего бота, набрав команду / newbot . Продолжайте указывать имя и логин вашего бота (мы решили назвать наш @pawsomebot). После этого вы получите токен, уникальный для вашего бота.
Теперь, когда у нас есть все предпосылки, пора переходить к захватывающей части!
Установка библиотек
Если вы используете Windows, откройте командную строку и введите следующие команды:
pip install python-telegram-bot
pip install запросы
Если вы используете macOS или Linux, используйте вместо этого следующие команды на своем терминале.Кроме того, в Linux убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.
pip3 установить python-telegram-bot
запросы на установку pip3
Написание программы
Создайте новую папку на своем компьютере и откройте ее в своем любимом редакторе. Создайте новый файл и назовите его main.py. Этот файл будет содержать исходный код вашего бота.
Теперь давайте импортируем библиотеки, которые мы установили ранее, вместе с некоторыми из их встроенных функций.
из telegram.ext import Updater, CommandHandler
запросов на импорт
import re
С этого момента программа выполняет доступ к TheCatAPI, получает URL-адрес случайного изображения и отправляет это изображение в чат пользователя.
Начнем с функции получения URL изображения, что можно сделать с помощью модуля запросов. В этой функции мы загружаем данные JSON случайного файла, предоставленного TheCatAPI, и извлекаем его URL для дальнейшего использования.Чтобы посмотреть формат объекта JSON, перейдите на страницу https://api.thecatapi.com/v1/images/search в своем браузере. Вы заметите что-то вроде этого:
[{"breeds": [], "id": "a8c", "url": "url.jpg", "width": 800, "height": 533}]
Обратите внимание, что объект JSON - это массив, содержащий словарь. Этот словарь содержит URL с ключом url. Чтобы извлечь URL-адрес, нам нужно указать первый элемент массива, а затем соответствующий ключ.
def getUrl ():
# получить объект json с деталями изображения
# извлечь URL-адрес изображения из объекта json
contents = requests.get ('https://api.thecatapi.com/v1/images/search')
url = contents [0] ['url']
URL возврата
Далее нам нужно отправить это изображение в чат пользователя. Для этого нам понадобится URL изображения, а также уникальный идентификатор чата пользователя. Для этого создадим функцию-оболочку. Сначала мы вызываем getUrl () .для получения URL-адреса случайного изображения - этот URL-адрес изменяется каждый раз, когда ваша программа выполняет итерацию по функции.
Затем следует получение идентификатора чата пользователя-получателя, который определяет целевое местоположение бота для сообщений, и анализ URL-адреса с помощью встроенной в Bot API функции send_photo () .
def sendImage (bot, update):
url = getUrl ()
chat_id = update.message.chat_id
bot.send_photo (chat_id = chat_id, image = url)
Чтобы узнать больше о различных встроенных функциях Bot API и о том, как они работают, ознакомьтесь с официальной документацией Telegram после этого руководства.
Наконец, давайте создадим функцию, которая контролирует общую работу бота. В этой функции - условно называемой main () - мы отправляем HTTP-запрос в API бота, используя токен, полученный в начале руководства, а затем определяем, как будет выглядеть пользовательское взаимодействие бота. В таком простом случае, как наш, это, по сути, означает запуск бота и вызов функции sendImage () по запросу пользователя.
def main ():
updater = Updater ("11035: AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c")
# вызов sendImage (), когда пользователь набирает команду в телеграммном чате
Updater.dispatcher.add_handler (CommandHandler ('meow', sendImage))
# запуск бота
updater.start_polling ()
updater.idle ()
if __name__ == '__main__':
main ()
Ваша окончательная программа должна выглядеть так:
из telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl ():
# получить объект json с деталями изображения
# извлечь URL-адрес изображения из объекта json
contents = requests.get ('https://api.thecatapi.com/v1/images/search')
url = contents [0] ['url']
return url
def sendImage (bot, update):
url = getUrl ()
chat_id = update.message.chat_id
bot.send_photo (chat_id = chat_id, image = url)
def main ():
updater = Updater ("11035: AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c")
(#call sendImage types) команда в чате телеграммы
updater.dispatcher.add_handler (CommandHandler ('meow', sendImage))
# запустить программу обновления бота
.start_polling ()
updater.idle ()
если __name__ == '__main__':
main ()
Ваш собственный Telegram Bot
Поздравляю! Вы создали своего собственного бота для снятия стресса, который по запросу отправляет изображения самых симпатичных интернет-кошек из открытых источников. Попробуйте запустить свою программу и введите / meow в чате своего бота, чтобы активировать ее.
Хотя это может быть простой бот с ограниченной функциональностью, он показывает, насколько мощна экосистема разработки ботов Telegram.Вы можете добавить любое количество сложных подпрограмм и функций для улучшения функциональности вашего бота - нет предела. Чтобы узнать больше об удивительных ботах Telegram, созданных участниками на протяжении многих лет, просмотрите наш список полезных ботов Telegram.
Вы также можете найти множество лицензионных программ с открытым исходным кодом для ботов Telegram на таких платформах, как GitHub. Большинство лицензий с открытым исходным кодом позволяют вам использовать, изучать, загружать или изменять исходный код программы.
Разместите своего бота Telegram онлайн
Теперь, когда у вас есть бот, попробуйте закрыть main.py на своем ПК и использовать бота в своем приложении для обмена сообщениями Telegram. Он по-прежнему отвечает на команду / meow ? Нет, это не так.
Как новичок, вы можете быть сбиты с толку, почему main.py на вашем ПК должен быть запущен и работать, если вы уже создали бот, работающий в Интернете. Причина этого в том, что программа использует ваш компьютер в качестве локального сервера для отправки HTTP-запросов к API, используемым в этой программе.
Таким образом, необходимость запускать программу каждый раз, когда вы хотите использовать приложение, невыполнима и не удобна. Чтобы решить эту проблему, нам нужно удалить зависимость бота от вашего устройства.
Один из способов сделать это - использовать недорогую печатную плату (PCB), такую как Raspberry Pi, для настройки собственного веб-сервера и использования его для запуска вашей программы. Он имеет те же преимущества, что и запуск программы на вашем ПК, без затрат на то, чтобы держать его включенным весь день и ночь, поскольку печатные платы, как правило, имеют значительно меньшее энергопотребление.
Кроме того, вы также можете развернуть свою программу в облаке. Перейдите на платформу хостинга веб-приложений, такую как Heroku, AWS, Google Cloud или Microsoft Azure, и выберите подписку, которая наилучшим образом соответствует вашим потребностям. Мы рекомендуем выбрать бесплатную пробную версию или подписку и обновлять ее по мере увеличения масштаба или объема вашей программы.
Как бесплатно разместить свой веб-сайт Python на HerokuНужно бесплатно разместить небольшой веб-сайт? Heroku может быть именно тем, что вы ищете.
Читать далее
Об авторе Яш Челлани (Опубликовано 10 статей)Яш - амбициозный студент, изучающий информатику, любит создавать вещи и писать обо всем, что связано с технологиями.В свободное время он любит играть в сквош, читать последнюю версию Мураками и охотиться на драконов в Скайриме.
Более От Яша ЧелланиПодпишитесь на нашу рассылку новостей
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Нажмите здесь, чтобы подписаться
.