В данной статье мы напишем telegram bot на python, который сможет отвечать на наши сообщения, взаимодействовать с нами, предлагая варианты ответов в виде кнопок и обрабатывать выбранный нами результат, выполняя команды на сервере. Взаимодействовать с Telegram Bot Api мы будем с помощью библиотеки pyTelegramBotAPI (telebot) написанной на Python.
- Создание бота
- Установка Python и библиотеки pyTelegramBotAPI
- Пишем Telegram Bot на Python
- Использование прокси в telebot
- Ответы бота на сообщения пользователя
- Клавиатура в Telegram Bot API
- InLine клавиатура
- Конечный листинг
Создание бота
Для регистрации нового бота необходимо обратиться к боту BotFather. Для этого в строке поиска наберите BotFather и в показанных результатах найдите интересующего нас бота:
Обратите внимание на его имя, изображение и знак в виде галочки, говорящий о том, что это действительно отец всех ботов.
КАК СОЗДАТЬ ЧАТ БОТ В ТЕЛЕГРАММЕ. Наполняем Бот командами.
Выберите его и в диалоговом окне напишите команду /start и бот в ответном сообщение пришлет список всех доступных команд:
Нас интересует создание нового бота, поэтому выбираем команду /newbot. Команду можно как напечатать самостоятельно, так и выбрать мышью в сообщении и она автоматически отправится:
Первым шагом нам предлагают дать имя новому боту, оно может быть произвольным. Мы назовем его PocketAdmin:
Теперь требуется указать идентификатор бота (username), он должен заканчиваться на _bot и быть уникальным в системе. Мы укажем PocketAdminTech_bot:
На этом создание бота завершено. В последнем сообщении нам пришла ссылка на нашего нового бота t.me/PocketAdminTech_bot и токен (закрашен), необходимый для взаимодействия с API.
Обязательно сохраните токен и храните его в тайне!
Установка Python и библиотеки pyTelegramBotAPI
Скачать Python можно с официального сайта (как установить пакет на Centos 8 можно ознакомиться в данной заметке) и мы не будем заострять внимание на данном вопросе.
Чтобы установить пакет pyTelegramBotAPI воспользуемся pip:
pip install pytelegrambotapi
На этом подготовительная работа завершена, приступаем непосредственно к написанию нашего бота.
Пишем Telegram Bot на Python
Так как наш бот создается в ознакомительных целях и не будет содержать много кода, то писать я его буду сразу на сервере с установленной Centos 8 используя обычный редактор nano. Создадим файл bot.py, открыв его nano:
nano bot.py
Для начала импортируем библиотеку pyTelegramBotAPI:
import telebot
Затем зададим переменную token равную нашему токену, который мы получили от BotFather для взаимодействия с Telegram Bot Api:
token = ‘ваш token api’
bot = telebot.TeleBot(token)
Далее задается декоратор. Пока наш бот будет обрабатывать только команду start:
и в ответ писать нам “Привет!”:
def start_message(message): bot.send_message(message.chat.id, ‘Привет!’)
Чтобы бот постоянно ожидал запрос от пользователя в конце пропишем:
bot.polling()
В итоге мы получим код:
python bot.py
Затем откроем нашего бота (можно найти по имени) и напишем ему команду /start:
Поздравлю с первыми словами нашего бота PocketAdmin!
Использование прокси в telebot
При запуске скрипта может появиться ошибка следующего вида:
requests.exceptions.ConnectionError: (‘Connection aborted.’, ConnectionResetError(104, ‘Connection reset by peer’))
Чтобы исправить её, можно попробовать подключиться через прокси:
Если при использовании прокси возникают ошибки, подобные: Not supported proxy scheme socks5 или Missing dependencies for SOCKS support, то необходимо установить модули:
pip install requests[socks] PySocks
Ответы бота на сообщения пользователя
Аналогично хэндлерам для команд, в telegram bot api есть возможность обрабатывать сообщения от пользователя. Для этого используется тип text. Например, мы можем запрограммировать бота отвечать на определенные фразы или слова пользователя:
Думаю тут все понятно. На слово “Привет” бот будет отвечать “Ещё раз привет!”, а на “Пока” – “Пока!”. Весь код нашего telegram bot на python теперь будет выглядеть следующим образом:
Перезапустим скрипт и пообщаемся с ботом:
Таким образом мы можем описывать различные диалоги с ботом.
Клавиатура в Telegram Bot на Python
Апи телеграма позволяет использовать свою клавиатуру, а точнее быстрые кнопки, позволяющие пользователю отправлять текст по их нажатию.
Добавим в обработчик команды /start клавиатуру с кнопками “Привет “и “Пока”:
И запустим измененный скрипт. Как только мы отправим боту команду /start у нас внизу появится наша клавиатура:
Теперь для отправки сообщений достаточно лишь нажать на соответствующую кнопку. Это очень удобно в мобильной версии телеграма.
InLine клавиатура
На мой взгляд, наиболее интересной является InLine клавиатура. Она позволяет вместе с сообщением отправлять пользователю интерактивные кнопки, например с вариантами ответов, а после их нажатия обрабатывать результат.
Давайте добавим простой вопрос от бота на команду /test:
Переменная markup объявляет новую переменную с inline keyboard, а markup.add – создает отдельную кнопку. Основные параметры при создании кнопки – text и callback_data: первый отвечает за текст на кнопке, второй – данные, которые будут переданы боту при выборе пользователем определенного варианта ответа.
Запустим скрипт и напишем /test:
Отлично, бот прислал нам варианты ответов. Но при нажатии на кнопку ничего не произойдет, т.к. мы не описали обработку результатов. Исправим это:
bot.answer_callback_quer – это всплывающее окно, которое будет показано пользователю после нажатия кнопки. А в call.data будет передано значение, которое мы указывали при создании клавиатуры в параметре callback_data. Ответим боту, выбрав один из ответов:
Отлично, все работает. Но будет лучше, если после ответа, клавиатура будет исчезать из чата. Это можно сделать добавив в конец функции query_handler следующую строку:
bot.edit_message_reply_markup(call.message.chat.id, call.message.message_id)
Это функция редактирования клавиатуры, вызванная без указания объекта клавиатуры. Теперь после ответа пользователя клавиатура будет убрана ботом:
Конечный листинг телеграм бот на питоне
38 полезных ботов для Telegram
Помощники для эффективной работы, учебы и планирования.
Telegram стал не просто мессенджером, а персональным ассистентом. Теперь он помогает не ошибаться в текстах, настроить автопостинг в Instagram, установить таймер, перевести деньги и выучить новые слова на английском.
Делимся полезными телеграм-ботами, с которыми проще жить.
Работа с текстом
#1. Markdown — бот в телеграме, который позволяет добавить ссылку в текст, выделить курсивом или жирным, сделать разметку при постинге с телефона.
#2. Тарас — бот, который автоматически конвертирует аудиосообщения в текст.
#3. Babelgram — может автоматически переводить ваши сообщения в групповом чате или приватном разговоре.
#4. Telegraph — помогает управлять своими статьями и получать статистику просмотров страниц.
Работа с соцсетями
#5. Controller Bot — помогает создавать отложенные посты, формировать статистику по подписчикам и много другого. Фактически это ваш бесплатный ассистент.
#6. LikeBot — позволяет прикреплять к контенту эмодзи-реакции.
#7. Stickers — официальный бот Telegram по созданию стикеров. Нужно выбрать имя стикерпака, загрузить фото с прозрачным фоном в формате PNG 512*512 и определить, к какому эмодзи это изображение прикрепить.
#8. Group Butler — бот может удалять и банить пользователей за флуд, несоблюдение правил сообщества, неприемлемую лексику и другое.
#9. Sticker Downloader — с его помощью можно скачать любой статичный стикер в формате png или jpeg.
#10. ImageBot — создает гифки из присланных ему изображений.
#11. URL Shortener — сокращает URL-адрес с помощью Google и Bitly.
#12. Quiz Bot — бот, который поможет создать лид-магнит, тест, викторину, дополнение к продукту в Телеграме.
Боты для продуктивности
#13. Pomodoro Bot — работает по технике управления временем Помодоро. Просто выберите, на какой срок вам нужно сконцентрироваться, и бот пришлет сообщение, когда придет время отдыха.
#14. Alert Bot — планировщик. Введите время и событие, о котором нужно напомнить, и бот пришлет оповещение.
#15. Evernote — бот от Evernote, с помощью которого можно добавлять в свой блокнот текст, фото, файлы, аудиосообщения и локацию.
#16. Trello – создавайте карточки Trello, не выходя из Telegram.
Боты для поиска работы
#17. OLX робота — нужно ввести желаемую должность, город и зарплату — и бот будет присылать вакансии.
#18. Jobs Bot — возможность присоединиться к команде Телеграм, бот показывает вакансии и принимает заявки кандидатов.
#19. JobPoint — помогает найти работу и кандидатов в нужной географической точке.
#20. robota.ua — чат-бот поможет найти удаленную работу, подписаться на новые вакансии по выбранным параметрам поиска или отыскать вакансии за границей.
HR и рекрутинг
Екатерина Губарева
ex-AVP Global Logic
Узнать больше
HR и рекрутинг
«Управление командой в бизнесе»
Лариса Стирская
Эксперт с 10-летним опытом в сфере управления талантами
Узнать больше
Финансовые боты
#21. CoinTrendzBot — предоставляет информацию о ценах криптовалют в реальном времени, рейтинговые подборки и последние новости из мира криптобиржи.
Боты для обучения
#22. Andy English Bot — помогает практиковаться в английском языке в процессе переписки.
#23. Wolfram Alpha — позволяет вычислять алгоритмы и пользоваться базой знаний Wolfram Alpha прямо в Telegram.
#24. Quiz from Panda — англоязычная викторина, в которой более 2 тыс. вопросов по разной тематике: от географии и литературы — до кулинарии и искусства.
Развлечения
#25. GameBot — бот, который позволяет играть с друзьями в мини-игры. Просто нажмите «Играть с друзьями», затем выберите чат и игру.
#26. Chat Wars — фэнтези-игра со средневековым сюжетом. Главное событие игры — битва семи замков, которая происходит каждые 8 часов. В боях герои награждаются баллами опыта и золотом.
#27. Gamee — внушительное количество мини-игр, собранных в одном месте. Можно играть в одиночку или с друзьями.
#28. Tic Tac Toe Bot — любимые многими крестики-нолики в Телеграме.
Весь бизнес-контент в удобном формате. Интервью, кейсы, лайфхаки корп. мира — в нашем телеграм-канале. Присоединяйтесь!
Другое
#29. Manybot — с его помощью можно создать своего бота. Функции: присылать сообщения подписчикам, создавать кастомные команды, меню и подменю, автопостить с RSS, Twitter, VK и YouTube, настраивать формы заказа и фидбека.
#30. Wikipedia Search — поиск по «Википедии».
#31. OpenDataUA — сервис мониторинга открытых данных. Ищет информацию в государственных реестрах по коду ЕГРПОУ, названию компании, ФИО и номеру автомобиля.
#33. AirTrack — ищет самые дешевые авиабилеты, отслеживает их стоимость и сообщает в случае изменения цены.
#34. Eddy Travels — помогает клиентам искать самые доступные отели и авиарейсы во время поездки. Бот также может помочь с поиском лучших туристических направлений.
#35. File Converter — позволяет легко конвертировать файлы из одного формата в другой. Он работает с изображениями, аудиофайлами и видео.
#36. Gmail bot — позволяет получать, управлять и отвечать на электронные письма в Telegram.
#37. GitHub — бот подключается к вашему репозиторию и оповещает о разных событиях в нем, а также позволяет отвечать на комментарии, не выходя из Telegram.
#38. Map Bot — может отправлять карты с openstreetmap и спутниковые изображения по названию локации.
Источник: l-a-b-a.com