telebot быстро и понятно. Телеграмм-бот
telebot (pyTelegramBotAPI) хорошая и лёгкая библиотека для создания бота на python для телеграмма.
Установка
Если у вас windows, тогда вам надо найти cmd на своём пк, а если у вас macOS, тогда вам надо открыть терминал.
Для установки telebot (pyTelegramBotAPI) на windows вам надо написать в cmd
Для установки на macOS нам надо написать в терминале
Написание кода
Сначала надо получить токен. Для этого зайдём к боту botfather,чтобы получить токен (botfather)
Теперь можно начать писать код.Сначала мы импортируем библиотеку.
Теперь создаём переменную под названием token, в ней мы будем хранить наш токен.
Теперь мы можем создать приветствие бота:
Нам надо создать переменную bot, в ней мы пишем telebot.Telebot (наша переменная с токеном).
Создаём функцию под названием «start_message»
В скобках указываем «message».
Пишем внутри функции bot.send_message(message.chat.id,»Привет»)
и вне функции пишем bot.infinity_poling()
и запускаем программу.
Теперь наш бот может приветствовать
Приветствие мы сделали, теперь давайте сделаем кнопку.
Надо написать from telebot import types там же, где мы импортировали библиотеку telebot
Теперь пишем @bot.message_handler(commands=[‘button’]). Дальше мы создаём функцию под названием button_message, в скобках указываем message.
Дальше надо создать клавиатуру в переменной под названием markup, в переменной пишем types.ReplyKeyboardMarkup(resize_keyboard=True).
Потом создаём переменную item1, в ней будет хранится сама кнопка и пишем что item1=types.KeyboardButton(«текст на кнопке»).
Дальше к клавиатуре добавим нашу кнопку
Далее надо отправить сообщение «Выберите что вам надо» и после текста написать reply_markup=markup и закрываем скобки.
Теперь у нас есть кнопка. Вот пример:
Но если мы на неё нажмём, то ничего не произойдёт. Сейчас мы сделаем так, чтобы при нажатии на кнопку выдавало ссылку на мою страницу в Хабре.
Для начала мы напишем @bot.message_handler(content_types=’text’)
Дальше нам надо создать функцию по названием message_reply, а в скобках указать message.
Внутри функции надо указать условие «if message.text==»Кнопка:», а внутри условия отправить нам нужное сообщение.
Смена кнопок
Это последняя часть статьи.В следующей статье мы разберём с вами добавление в группу или канал.
Это можно считать самая лёгкая часть статьи.
Мы разберём сейчас с вами замену кнопок.
Теперь нам просто надо создать клавиатуру с кнопками и добавить к клавиатуре кнопку как в прошлой части в тоже самое условие.Дальше в той же функции написать:
Теперь при нажатии на Кнопку 1 она у нас сменяется на кнопку 2 и при нажатии на кнопку 2 у нас присылает сообщение «Спасибо за прочтение статьи!».
Боты в Телеграм: что это такое и как они работают
Здравствуйте, дорогие читатели. У меня для вас отличная новость. Наконец-то дошли руки рассказать про то, что такое боты в Телеграм. Расскажу, зачем они нужны, как их искать и как правильно использовать. Как всегда, в описании будет минимум воды и максимум пользы.
Бот – что это такое и что он умеет
Робот-помощник, готовый выполнить любое рутинное занятие, или специальный программный код, выполняющий определённые команды пользователя.
Вся переписка с ним ведётся через обычный чат. Вы даёте боту команды, которые он готов выполнять круглосуточно. Его основная задача ответить на вопрос пользователя, согласно своей программе. Боты помогают, экономят кучу времени и управлять ими очень просто.
На сегодня роботы Телеграм могут:
Другими словами, они, как посредники между человеком и многочисленными веб-службами. Их большой плюс – это общая оболочка, теперь внутри Телеграм находится вся информация, которую люди привыкли искать через Яндекс и Гугл.
На мой взгляд, несомненный плюс в экономии времени за счёт уменьшения количества приложений в гаджете. Люди всегда хотят получать всё, что им нужно, в одном окне. Теперь нет необходимости в установке лишних приложений для погоды, новостей и т. п., что было особенно критично для маломощного смартфона. Теперь всё это заменяет Телеграм с возможностью установки необходимых роботов.
Далее разберём, как они работают.
Принцип очень прост. Вы находите бота, пишете ему текстовое сообщение (команду) и через доли секунды получаете ответ.
Теперь о том, как найти бота в Телеграме.
Ищем своего бота
Поиск бота ничем не отличается от поиска каналов в Телеграмм. Помните, о них я писал немногим раньше. Основные варианты поиска:
Выборки чаще всего субъективны, следует внимательно прочитать описание. Кстати, я прямо сейчас готовлю большую подборку, разбитую по категориям. Не пропустите.
Для этого нужно знать точное имя и ввести его в строку поиска. Имя обязательно заканчивается на bot и начинается с собачки – @.
Спросите друга, который любит разбираться в современных технологиях. Друзья плохого не посоветуют.
Как ими пользоваться
Давайте на живых примерах рассмотрим варианты использования.
Общая схема: найти бота – нажать start/начать – ввести команду – получить ответ.
Думаю всем уже понятно, что бот — это программа, которая понимает определённые фразы. Они запускают цепочку действий, итогом является решённая задача.
Скриншоты будут из версии для ПК. В мобильной и онлайн-версиях всё то же самое.
Боты с готовым меню
В большинстве случаев бот имеет собственное меню. Вот пример Яндекс-бота.
Вот ещё вариант меню у бота популярного сайта AdMe.
Скрытое меню
У некоторых роботов меню скрыто. Чтобы его вызвать, необходимо нажать «/» и появится список команд.
Нужно знать команды
В статье про русификацию Телеграм мы знакомились с роботом Антоном, так вот, он не имеет понятного меню. Чтобы узнать, какие команды он понимает, необходимо отправиться в поиск по интернету.
Универсальные команды
Их понимает большинство онлайн-помощников:
Иногда боты понимают команды на русском, можно просто догадаться по смыслу. Вот образец – знаменитый робот Антон подрабатывает ещё и в Гидрометцентре. Если его спросить «Погода Воронеж», он тут же сообщит прогноз.
Если бот молчит
Иногда можно найти бота, который не отвечает. Что ни спроси, он будет молчать, как партизан. В чём причина?
Сам столкнулся с проблемой – не захотел работать популярный @nationalgeographic_bot, он должен показывать лучшие фотки знаменитого журнала. Но, как я ни старался, команду подобрать не смог. Может у вас получится? Сообщите, пожалуйста.
На этом заканчиваю. Если есть вопросы, напишите их, пожалуйста, в комментариях. Подписывайтесь на обновления, чтобы не пропускать выход новых статей на блоге.
С 2015 года работаю удалённо и развиваю бизнес в интернете. Создал более 20 источников дохода онлайн. Изучаю инвестирование и активно инвестирую в различные инструменты.
2 года прожил в Азии (о. Бали и о. Панган), продолжаю путешествовать по миру, помогать людям становиться финансово грамотными и улучшать своё качество жизни.
Telebot что это такое
Перевод библиотеки TeleBot
Latest commit
Git stats
Files
Failed to load latest commit information.
Или клонировать свежий код прямо из git:
Импорт модуля telebot и создание нового объекта бота:
Не забудьте вставить Telegram Bot API токен.
Мы создали бота-повторюшку!
Отправить текст на команды /start или /hello :
Когда получен стикер, ответить:
Отправлять фото на сообщения «show kitty» или «kitty» (используя регулярные выражения):
Комманды с аргументами /say :
Когда сообщение было отредактировано:
Примечание: msg.reply это не метод бота, это метод плагина shortReply.
Для примера, добавим слеш, чтобы ответить на команду:
Таже, можно добавлять массив событий:
keyboard, button, inlineKeyboard, inlineQueryKeyboard, inlineButton, answerList, getMe, sendMessage, deleteMessage, forwardMessage, sendPhoto, sendAudio, sendDocument, sendSticker, sendVideo, sendVideoNote, sendVoice, sendLocation, sendVenue, sendContact, sendChatAction, getUserProfilePhotos, getFile, kickChatMember, unbanChatMember, answerInlineQuery, answerCallbackQuery, answerShippingQuery, answerPreCheckoutQuery, editMessageText, editMessageCaption, editMessageReplyMarkup, setWebhook
События Telegram сообщений:
Вы можете добавить модификатор для обработки данных, прежде чем передавать его в событие.
Этот код бобавляет эможджи к каждому text сообщению.
Используйте опцию конфигурации usePlugins для загрузки плагинов из директории pluginFolder :
Делаем простого бота в Telegram на Python. Интеграция с Excel
«История ничему не учит, а только наказывает за незнание уроков.»
(с) В.О. Ключевский
Друг предложил мне поработать над проектом для нашей кафедры. ТЗ пока не сформулировано, но точно известно, что это будет бот в телеге. Я хоть и питонист, но с ботами дел никогда не имел, поэтому пишу эту статью, как заметку, для себя и молодых перспективных ребят, чтоб у них было от чего оттолкнуться. Постараюсь писать максимально понятным и простым языком. Профессионалам тут особо делать не чего, хотя, может и придёт какая-нибудь идея.
Краткое описание бота
Наш бот будет создан на тематику Белого движения в гражданской войне в России (1917-1922) /сегодня разговор не о политике. Это просто пример/
По команде /start бот будет приветствие и посылать стикер;
После приветствия появится клавиатура под строкой набора сообщений с двумя кнопками «Вывести случайную цитату белогвардейца» и «Литература»
Нажатие на кнопку «Литература» выдаст инлайновую клавиатуру (далее будет прояснение, для тех кто не понял что это) с названиями произведений белогвардейских авторов или о белогвардейцах.После нажатия клавиатура пропадёт (просто этим навыком, думаю, необходимо обладать), начнётся загрузка pdf файла и появится оповещение «Приятного чтения!»
Вот такой простенький бот у нас по выйдет.
Начало. Создание бота и добавление библиотек.
Для начала добавим библиотеку pyTelegramBotAPI обычным пипом в cmd.
Время импортировать все необходимые библиотеки.
Далее нужно создать самого бота в телеграме. Для этого пройдёмся по следующим шагам:
Найти в поиске телеграма @BotFather
Написать ему команду /newbot
Первым сообщение отправить имя бота, а вторым его юзернейм (который пишется с @). Он должен быть уникальный и оканчиваться на Bot или _bot
После этих шагов батя пришлёт нам ссылку на нашёго бота и его API.
Нужно скопировать всю строку, которая на скрине закрыта красным прямоугольником
Если коротко, то API — это контракт, который предоставляет программа. «Ко мне можно обращаться так и так, я обязуюсь делать то и это».
(Более подробная инфа тут API)
Кодим
Раз библиотеки уже добавили, значит создаём переменную, определяющую бота с помощью API.
В начале, при написании команды /start, бот у нас выдаст приветствие. Соответственно, вставляем декоратор обработчика сообщений.
Если кто не знает что такое декораторы, то есть достаточно подробная статья, рекомендую ознакомиться.
Коротко: Декораторы — это, по сути, просто своеобразные «обёртки», которые дают нам возможность делать что-либо до и после того, что сделает декорируемая функция, не изменяя её.
Теперь наш бот понимает команду /start, но ещё ничего не делает. Создаём функцию приветственного сообщения.
Пробежимся по коду
Последней строкой отправляем стикер bot.send_sticker(message.chat.id,stic)
Приветственное сообщение и клавиатура
Время дать возможность боту коммуницировать
Далее идёт строка с текстом. ВАЖНО текст должен совпадать с названием кнопки клавиатуры, которую указывали выше.
Со спокойной душой вызываем на файл на чтение
rb = xlrd.open_workbook(‘citat/citat.xls’, formatting_info=True), указываем лист с которого считываем инфу sheet = rb.sheet_by_index(0) индексы как у массива (первый элемент нулевой).
Вышло как-то так
Для литературы будем использовать инлайновую клавиатуру.
Определяем клавиатуру inMurkup = types.InlineKeyboardMarkup(row_width=1) параметр row_width=1 говорит о том, что на одной строке будет одна кнопка. Принцип кнопок создания такой же как и у обычной клавиатуры, но появляется параметр callback_data значения которого примет бот после нажатия на кнопку и поймёт что нужно сделать (далле это всё опишем).
Последней строкой отправляем сообщение и цепляем к нему инлайновую клавиатуру.
Работа с callback_data
мы создаём переменную doc в которую «суём» pdf файл, который сохранили в папку «boo» заранее.
Теперь строкой bot.send_document(call.message.chat.id, doc) отправляем файл в чат.
После леса из наших elif удалим инлайновую клавиатуру, дабы не мешалась. Действие необязательно, но мы же с вами тренируемся, поэтому пусть код будет здесь.
Уведомление призывается заклинанием
Параметр show_alert отвечает за вид оповещения (False — простое временное уведомление, True — уведомление с кнопкой «Ок»)

Завершаем эту ступень кода конструкцией проверки исключений (ошибок).
Именно этой командой и закончим наш код. Теперь бот постоянно проверяет не написал ли ему кто.
В итоге получился такой код:
Пара слов от автора
Если есть желание показать друзьям что наворотили, то запускайте код и всё будет работать, но если код остановить или выключить комп, то бот ничего выдавать не будет. Из этого выходит, что для полноценного бота просто необходим хостинг, что, как правило, платно.
Больше функций, параметров и всего прочего находится в документации. Справочник на русском. Библиотеки pyTelegramBotAPI и xlrd.
Огромное спасибо за прочтение статьи! Надеюсь она оказалась полезной. А если понравилась, то поднимай статью в рейтинге и оставляй комменты)
Приглашаю прочесть мои статьи:
Автор обитает тут: ВК, Инстаграм
Создание Python Telegram бота и его deploy на виртуальную машину
Кому нужны чат-боты?
Рынок чат-ботов в России растет с бешеной скоростью и ожидается ежегодный прирост на 30% в течение ближайших трех лет. В 2020 г. количество запросов на чат-боты увеличилось на 17% по сравнению с 2019 г. Большим спросом стали пользоваться голосовые боты, количество запросов на них выросло в четыре раза. В 2021 г. ожидается рост числа запросов на чат-боты на 15-20% от организаций из госсектора, образования, медицины, логистики, ретейла и e-commerce, промышленных и добывающих компаний.
Создаём нашего telegram бота.
Пишем код под наши задачи и тестируем его работоспособность.
Выбираем надежный сервис виртуальных машин.
Переносим нашего бота на виртуальную машину для его дальнейшей работы.
Настраиваем беспрерывную работу бота.
Шаг 1. Создание бота в Telegram
Первые три шага опишу максимально кратко, так как статей на эту тему много и обычно это не вызовет у пользователей никаких трудностей. Для создания бота нам понадобится написать BotFather.
Шаг 2. Напишем простейшего чат-бота и протестируем его
Для работы будем использовать библиотеку telebot, которую можно установить при помощи следующей команды:
$ pip install pytelegrambotapi
Для установки других библиотек, в случае того, если вы не ограничиваетесь базовым функционалом вам поможет господь Google.
Напишем простого бота, который будет присылать нам в ответ на различные Emoji их размытые PNG копии:
Наш бот готов, теперь осталось его протестировать. Заходим по ссылке, которую прислал BotFather.
Поздравляю, наш бот теперь работает. И тут мы подходим к главной проблеме: как только мы выключим наш компьютер с запущенным кодом, бот мгновенно перестанет работать. Для решения этой проблемы нам-то и понадобится сервис предоставляющий виртуальные машины.
Шаг 3. Выбираем виртуальную машину!
Что вообще такое эта виртуальная машина?
Виртуальная машина (ВМ ) — это виртуальный компьютер, который использует выделенные ресурсы реального компьютера (процессор, диск, адаптер). Эти ресурсы хранятся в облаке и позволяют ВМ работать автономно. Простыми словами, виртуальная машина позволяет создать на одном компьютере ещё один компьютер, который будет использовать его ресурсы, но работать изолированно.
Именно виртуальная машина поможет нашему боту отвечать на все запросы и работать 24 на 7.
Как выбрать виртуальную машину?
ВМ выбирается исключительно отталкиваясь от ваших потребностей бюджета. Чем больше вам необходимо мощности и памяти, тем выше будет ее стоимость. В настоящее время есть множество хороших сервисов, предоставляющих пробный период с которым вы сможете определиться, подходит ли вам сервис.
Лично я могу рекомендовать следующие сервисы:
Mail cloud solutions — Предоставляют 3000 р. на два месяца тестового периода. (Именно его я и буду использовать в дальнейшей работе).
Yandex.Cloud — Представляют 2000 р. на два месяца тестового периода.
Google Cloud Platform — Предоставляют 300$ на три месяца тестового периода.
После выбора сервиса, пройдем регистрацию и создадим новую виртуальную машину.
Создание виртуальной машины.
Я выбрал минимальные параметры, так как нашему боты не нужны какие-то большие энергоресурсы.
Настройка сети.
Для подключения будем использовать протокол SSH. Для подключения к нашей виртуальной машине, нам необходимо будет выпустить новую связку ssh-ключей.
Для этого перейдем в терминал и пропишем следующую команду:
Переходим к следующему шагу.
Подключение к виртуальной машине
Для подключения к нашей виртуальной машине пропишем следующую команду:
/.ssh/ИмяВашегоКлюча ubuntu@ваш публичный IP-адрес
В случае удачного подключения вы увидите нечто подобное:
Мы подошли к самому сложному шагу, который я надеюсь, благодаря моей статье перестанет быть столь трудным для освоения.
Установим на наш сервер последнюю версию Python. Для этого последовательно вводите следующие команды:
Установим и создадим виртуально окружение:
Установим и запустим Redis-server:
Проверить, запущен ли наш Redis-server, необходимо прописать «ping»
Если в ответе вы получили PONG, поздравляю, все готово к дальнейшей работе!
Перенесем все необходимые файлы на наш виртуальный сервер. Для этого я буду использовать очень удобную программу CyberDuck
Мы попадаем фактически на наш сервер, с уже установленным Python, папкой с названием нашего бота и виртуальным окружением. Остается перенести все данные нашего бота. Для этого копируем ВСЕ необходимые файлы и вставляем их на сервер.
Поздравляю, мы на финишной прямой, остается запустить нашего бота на сервере и проверить его работоспособность.
Проверяем работу, если все в порядке, прописываем в терминале deactivate. Нам остается последний шаг. Настроить непрерывную работу нашего бота.
Шаг 5. Настройка беспрерывной работы нашего бота.
Пропишем следующую команду: nano /lib/systemd/system/НазваниеБота.service
Нажимаем CTRL+O → Enter → CTRL+X для сохранения. Эти настройки помогут запускать или перезапускать нашего бота.
Последний шаг: Снова запускаем нашего бота, но уже с беспрерывной работой.
ГОТОВО! Наш бот запущен и теперь работает 24/7, независимо от того, включен наш с вами компьютер или нет. Если что-то не работает, тщательно проверьте, правильно ли вы прописали путь к файлам. Если терминал выдает ошибку авторизации, попробуйте добавить перед командой «sudo» (Команда от имени администратора)








