Не работает telegram бот на python?
- Не работает telegram бот на python?
- Бот напоминалка телеграм python. Первый этап: подготовка проекта и развертывание окружения
- Запуск телеграм бота на сервере python. Запуск бота
- Лучшая библиотека для телеграм бота python. Создание первого Telegram бота на Python. Част. Выбираем библиотеку и пишем первого бота.
Не работает telegram бот на python?
Сделал базового бота Telegram на Python.
import telebot
bot = telebot.TeleBot("1101114834:AAHYPyEyL7QicW8OQuKsiDrN28gBBAmcCJg")
@bot.message_handler(commands=)
def send_welcome(message):
bot.reply_to(message, "Howdy, how are you doing?")
bot.polling()
Exception has occurred: ConnectTimeout
HTTPSConnectionPool(host='api.telegram.org', port=443): Max retries exceeded with url: /bot1101114834:AAHYPyEyL7QicW8OQuKsiDrN28gBBAmcCJg/getUpdates?offset=1&timeout=20 (Caused by ConnectTimeoutError(
Сергей Горностаев @sergey-gornostaev Куратор тега Python
В России проблема не с VPN, а с блокировкой доступа к серверам Telegram. Либо используйте VPN, либо запускайте ваш код не на территории РФ.
Написано
Сергей Горностаев @sergey-gornostaev Куратор тега Python
Искандер Кувыкин , не существует настроек VPN для telegram-бота. Просто подключаете к VPN компьютер, на котором запускается бот, и всё.
Бот напоминалка телеграм python. Первый этап: подготовка проекта и развертывание окружения
Найдем в поиске Telegram BotFather — официального бота мессенджера, который создает другие боты и управляет ими. В интерфейсе выбираем /start, затем — /newbot, и следом задаем имя и адрес. В этой иструкции это будут Elbrus Reminder и elbrus_reminder_bot соответственно.
После этого BotFather пришлет сообщение с токеном и ссылкой на бот:
Токен нужно хранить в безопасном месте — он дает контроль над ботом. и, как следствие, позволяет получить доступ к данным пользователей.
На время закроем Telegram и создадим на компьютере папку с именем проекта: например, reminder_bot. Откроем папку в среде разработки и создадим рабочий файл с понятным названием — bot.py .
Откроем терминал редактора кода и создадим для проекта новое окружение. В среде разработки с помощью командыpython -m venv .venv
создадим папку с окружением .venv
.
Если окружение не активировалось автоматически, можно сделать это вручную, прописав путь к файлу активации в формате source .venv/bin/activate
, гдеsource
— команда языка программирования Bash. Другой вариант — перезапустить среду разработки. Он работает для Visual Studio Code, но нужно предварительно принять предложение редактора привязать среду к папке проекта сразу после создания окружения.
Практика создания нового окружения под каждый проект позволяет повыстить безопасности и стабильность проекта — в окружении вы можете использовать только те библиотеки и их версии, которые требуются в проекте. Если в проекте появятся дополнительные функции, все изменения будут храниться в этом окружении. При этом оно будет изолировано от других окружений и проектов — это повысит безопасность проекта.
Запуск телеграм бота на сервере python. Запуск бота
На сервере создаем файл bot.py:
nano bot.py
И вставляем в него код:from subprocess import check_output
import telebot
import time
bot = telebot.TeleBot("XXXXXXXXX:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")#токен бота
user_id = 0 #id вашего аккаунта
@bot.message_handler(content_types=)
def main(message):
if (user_id == message.chat.id): #проверяем, что пишет именно владелец
comand = message.text #текст сообщения
try: #если команда невыполняемая - check_output выдаст exception
bot.send_message(message.chat.id, check_output(comand, shell = True))
except:
bot.send_message(message.chat.id, "Invalid input") #если команда некорректна
if __name__ == '__main__':
while True:
try:#добавляем try для бесперебойной работы
bot.polling(none_stop=True)#запуск бота
except:
time.sleep(10)#в случае падения
check_output()
выполняет переданную команду и возвращает результат.Осталось только запустить бота. Для запуска процессов на сервере я предпочитаю использоватьscreen
(sudo apt-get install screen
):
screen -dmS ServerBot python3 bot.py
Лучшая библиотека для телеграм бота python. Создание первого Telegram бота на Python. Част. Выбираем библиотеку и пишем первого бота.
Разбираемся, как написать чат-бота с помощью библиотеки aiogram. Весь код — внутри статьи.
Компании используют чат-ботов в Telegram для разных задач: рассылают новости о новых акциях, принимают платежи или даже организуют службу технической поддержки. Обычные пользователи тоже используют их для своих бытовых нужд — ведут учёт личных финансов или оформляют посты в социальных сетях.
В этой статье мы научимся с нуля создавать чат-ботов с помощью Python: выберем лучшую библиотеку и напишем на ней эхо-бота, который отвечает на сообщения пользователя точно такими же сообщениями. Это первая часть урока по чат-ботам в Telegram — во второй части мы добавим новые фичи.
Библиотеки для создания бота
Для создания Telegram-ботов на Python существует несколько десятков библиотек. Они различаются популярностью, размером комьюнити и функциональностью. Рассмотрим самые популярные.
1. aiogram
Современная библиотека, набирающая популярность. Работает с асинхронным подходом к выполнению кода. Это позволяет не останавливать работу бота в ожидании ответа пользователя. У aiogram подробная документация и большое русскоязычное комьюнити. В этой и последующих статьях цикла мы будем работать как раз с этой библиотекой.
Одна из первых библиотек для создания ботов. Отличается от aiogram синхронным подходом к работе, то есть при ожидании ответа от пользователя выполнение кода останавливается.
3. TeleBot
Библиотека для создания простых ботов, позволяющая работать с асинхронным и синхронным подходом на выбор. Подходит для небольших проектов. Подробнее можно узнать в документации .
Переходим к созданию Telegram-бота. Потренируемся на простом примере — создадим эхо-бота, который отвечает на сообщения пользователя его же словами.
Для этого нам необходимо:
- установить Python и настроить виртуальное окружение;
- зарегистрировать бота в специальном Telegram-канале @BotFather;
- установить библиотеку aiogram;
- написать код эхо-бота, связав его по API с Telegram.
Устанавливаем Python и создаём виртуальное окружение
На macOS или Linux. Python установлен в эти операционные системы изначально. Чтобы проверить его наличие, откройте терминал и введите команду:
python --version
Если у вас не установлен Python:
Переходите на официальный сайт, скачиваете актуальную версию и устанавливаете её.
Не забудьте поставить галочку add PATH во время установки
После установки и проверки Python требуется установить виртуальное окружение с помощью virtualenv.
Это специальный инструмент, который позволяет изолировать друг от друга проекты в разработке, независимо устанавливая для них библиотеки и пакеты. Удобно, когда вы работаете над разными приложениями одновременно.
virtualenv устанавливается через терминал:
sudo pip3 install virtualenv
После этого необходимо создать директорию для проекта, внутри которой будет работать виртуальное окружение:
Команда mkdir создаст папку cd переведёт нас в неё. Теперь в этой директории будут храниться файлы проекта, связанные с нашим ботом.
Развернём виртуальное окружение внутри папки
virtualenv venv -p python3
Теперь его активируем. Если этого не сделать, то оно не будет работать.
source venv/bin/activate
Шаг 2
Создаём бота
Для создания бота необходимо воспользоваться Telegram и ботом @BotFather. Откройте мессенджер и введите название бота в поисковой строке:
Открываем его, жмём кнопку «Запустить» и вводим команду /newbot:
Теперь напишем название и юзернейм для нашего бота. Назовём его echo_skillbox_bot (теперь это имя занято, так что вам надо будет придумать своё). В ответ придёт наш токен, который мы будем использовать для подключения к API Telegram.
Этот токен мы сохраняем — он потребуется нам в будущем.