Создавал бота для telegram всё было хорошо.Потом пишу python bot.py в командной строке windose
(чтобы проверить нету ли где ошибки в коде) и тут выскакивает это.
Traceback (most recent call last):
File «bot.py», line 2, in
import config
ModuleNotFoundError: No module named ‘config’
Вот и за этой ошибки у меня не работает telegram бот.
ЧТО ДЕЛАТЬ?
Если что вот мой код:
import telebot
import configure
bot = telebot.TeleBot(configure.config.TOKEN)
@bot.message_handler(content_types = ['text'])
def lalala(message):
bot.send_message(message.chat.id,message.text)
if __name__ == '__main__':
bot.polling(none_stop=True)
-
Вопрос заданболее двух лет назад
-
1432 просмотра
Пригласить эксперта
Создавал бота для telegram всё было хорошо.
Только не надо рассказывать сказки. Вы не создавали бота, вы скопировали его из интернета, и то с ошибками. Да и еще ошибку дали от другого кода.
Чтобы заработало, нужно в одной директории с файлом бота создать файл «config.py». В нем написать строчку:
TOKEN = 'тут_ваш_токен'
Далее: ‘import configure’ заменить на ‘import config’
И — bot = telebot.TeleBot(configure.config.TOKEN)
заменить на bot = telebot.TeleBot(config.TOKEN)
И вообще нужно банить всех, кто лезет в боты, но не знает основ!!!
Ошибка не связана никак с кодом, который вы показываете
Замени configure.config.TOKEN на строку: «тут твой токен 1234566»
-
Показать ещё
Загружается…
14 июн. 2023, в 03:49
3000 руб./за проект
14 июн. 2023, в 03:45
4000 руб./за проект
14 июн. 2023, в 01:02
5000 руб./за проект
Минуточку внимания
Код ошибки:
/home/omega/Рабочий стол/#Code/Python/Telegrame_Bot_SATI/Sati.py:30: TelegramDeprecationWarning: Old Handler API is deprecated - see https://git.io/fxJuV for details
bot = bot,
Traceback (most recent call last):
File "/home/omega/Рабочий стол/#Code/Python/Telegrame_Bot_SATI/Sati.py", line 40, in <module>
main()
File "/home/omega/Рабочий стол/#Code/Python/Telegrame_Bot_SATI/Sati.py", line 34, in main
updater.dispatcher.add_handler(handler)
NameError: name 'updater' is not defined
Часть где возникает ошибка:
def main():
bot = Bot(
token = TG_TOKEN,
)
update = Updater(
bot = bot,
)
handler = MessageHandler(Filters.all, message_handler)
updater.dispatcher.add_handler(handler)
updater.start_polling()
updater.idle()
Вот весь код
from telegram import Bot
from telegram import Update
from telegram.ext import Updater
from telegram.ext import MessageHandler
from telegram.ext import Filters
TG_TOKEN = "1000229483:AAE4UzZeIgc1NSuN16u1I9wp5j4ZRQoJwEc"
def message_handler(bot: Bot, update: Update):
user = update.effective_user
if user:
neme= user.first_name
else:
name = "Аноним"
text = update.effective_message.text
reply_text = f"Привет, {name}!nn{text}"
bot.send_message(
chat_id = update.effective_message.chat_id,
text = reply_text,
)
def main():
bot = Bot(
token = TG_TOKEN,
)
update = Updater(
bot = bot,
)
handler = MessageHandler(Filters.all, message_handler)
updater.dispatcher.add_handler(handler)
updater.start_polling()
updater.idle()
if __name__ == "__main__":
main()
Бывают случаи, когда бот в Телеграмм перестает реагировать на отправляемые пользователем запросы. В материале разберемся, что делать, если бот в Телеграмме не отвечает на команды.
Причины появления сбоя
Первое, что нужно знать:
- боты в Телеграмм управляются с помощью API-интерфейса;
- API-интерфейс связан с локальным сервером, который получает команды.
На примере это выглядит следующим образом:
- пользователь в интерфейсе чат-бота пишет команду /start;
- запрос перенаправляется на сервер Телеграмм и затем в API;
- API-интерфейс обрабатывает запрос и отправляет боту инструкции, что делать;
- юзер получает ответ.
Поэтому основными причинами, почему бот не отвечает на команды могут быть следующие случаи:
- сбой в работе сервера;
- проблемы с соединением на телефоне.
Разберемся с каждой причиной отдельно и представим способы решения проблемы.
Сбой на стороне сервера Телеграмм
Сбой на стороне сервера может возникнуть из-за аппаратных неисправностей или DDoS-атак. Решение одно – посмотреть официальные группы Телеграмм и узнать, когда будут устранены неполадки. После этого проверить работоспособность виртуального ассистента, но перед этим его перезапустить. Действие доступно на телефонах и персональном компьютере.
Чтобы проверить Телеграмм бота На Android и iPhone, нужно:
- Открыть ленту.
- Выбрать бота и нажать по аватарке.
- Вверху тапнуть по трем вертикальным точкам.
- В контекстном меню нажать «Остановить».
- Вернуться в чат с ботом и внизу коснуться кнопки «Запустить».
На ПК-версии:
- Запустить Телеграмм с рабочего стола.
- В ленте выбрать и открыть chat бота.
- Кликнуть по наименованию виртуального помощника.
- На странице информации нажать по трем вертикальным точкам.
- В диалоговом окне активировать «Остановить».
- Вернуться в чат и внизу щелкнуть «Запустить».
Ассистент bot снова начнет работу в штатном режиме. Если же он все равно не запускается и не отвечает, придется делать проверку сети.
Проблемы с сетью
Стабильность работы Телеграмма и его компонентов, включая ботов, возможна, если на телефоне есть постоянный доступ к беспроводной или мобильной сети. Алгоритм исправления проблемы следующий:
- Через верхнюю шторку меню поочередно проверяйте стабильность интернета, активируя сначала беспроводную сеть, а затем мобильную и одновременно сравнивая, как работает мессенджер.
- Если предполагается использование мобильной сети, то выставьте протокол передачи данных 4G, LTE или H+. Откройте «Настройки», «Мобильная сеть», «Передача данных», «Режим сети». Во вкладке выберете пункт «4G/LTE/H+/3G».
После установки новых сетевых параметров перезагрузите устройство.
Читайте также: Как дать боту доступ к сообщениям Телеграмм
Другие причины нестабильной работы чат-бота в Телеграмм
Основные причины рассмотрены, есть и другие случаи, когда бот не отвечает на команду: обновление токена и использование неверных запросов.
Обновление токена
Если токен попадает в руки другому человеку, то необходимо его обновить: администратор Телеграмм канала или группы, в которых используются ассистенты генерирует новый токен (идентификатор для распознавания и установления подлинности бота на сервере). Бот начинает использовать обновленный алгоритм безопасного соединения.
Ответственные владельцы сообществ должны дать подписчикам инструкции по перезапуску приложения, чтобы применить новые настройки. Если этого не происходит, то после апдейта токена у пользователей могут возникнуть сбои – помощник перестает реагировать на команды, не отвечает на запросы. Что делать в этом случае?
Решение проблемы – перезапустить ассистента:
- Нажать по аватарке чат-бота.
- Вверху тапнуть по трем вертикальным точкам.
- В контекстном меню активировать «Остановить».
- Подождать немного и нажать «Запустить».
Параметры, заданные администратором сообщества, будут применены к чат-боту.
Неверные команды
Боты используют определенные команды, которые заданы во время разработки на языке Python. Если набирать запросы с ошибками, то виртуальный помощник никак не отреагирует. Рекомендуется ознакомиться со списком кодов, который появляется при запуске чат-бота. Если не хотите вводить команды вручную, воспользуйтесь вкладкой «Меню», выбирая нужный запрос.
Фото: Alex Knight Unsplash
Telegram Bot
Пользователь кидает трек, бот присылает ускореннуюзамедленную версию этого же трека
07.06.2023, 13:17. Показов 249. Ответов 0
Всем привет, написал бота на модуле telebot, его суть в двух словах — пользователь кидает трек, бот присылает ускореннуюзамедленную версию этого же трека.
Сначала тестил на своем пк, все было хорошо, решил закинуть на выделенный сервер.
Бот успешно работал 1-2 часа, выполнял свои функции и отправлял треки, но после двух часов отказался больше работать и выдавал ошибку, перезапуск бота тоже не помогает и на данный момент как только запускаю код, сразу ошибка, не работает ни секунды.
Возможно на форуме была такая тема или похожая, но найти не могу. Спасибо за ранее!
Ошибка (тут много):
Кликните здесь для просмотра всего текста
root@oldrquatkw:~/tgbot# python3 main.py
2023-06-07 10:13:46,755 (__init__.py:960 MainThread) ERROR — TeleBot: «Infinity polling exception: HTTPSConnectionPool(host=’api.telegram.org’, port=443): Max retries exceeded with url: /bot6091301464:AAHtp975wvJ6mI4FkXgy3MQ5ILBju33gzI8/getMe (Caused by NewConnectionError(‘<urllib3.connection.HTTPSConnection object at 0x7f2171282b30>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution’))»
2023-06-07 10:13:46,760 (__init__.py:962 MainThread) ERROR — TeleBot: «Exception traceback:
Traceback (most recent call last):
File «/usr/lib/python3/dist-packages/urllib3/connection.py», line 169, in _new_conn
conn = connection.create_connection(
File «/usr/lib/python3/dist-packages/urllib3/util/connection.py», line 73, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File «/usr/lib/python3.10/socket.py», line 955, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File «/usr/lib/python3/dist-packages/urllib3/connectionpool.py», line 699, in urlopen
httplib_response = self._make_request(
File «/usr/lib/python3/dist-packages/urllib3/connectionpool.py», line 382, in _make_request
self._validate_conn(conn)
File «/usr/lib/python3/dist-packages/urllib3/connectionpool.py», line 1012, in _validate_conn
conn.connect()
File «/usr/lib/python3/dist-packages/urllib3/connection.py», line 353, in connect
conn = self._new_conn()
File «/usr/lib/python3/dist-packages/urllib3/connection.py», line 181, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f2171282b30>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File «/usr/lib/python3/dist-packages/requests/adapters.py», line 439, in send
resp = conn.urlopen(
File «/usr/lib/python3/dist-packages/urllib3/connectionpool.py», line 755, in urlopen
retries = retries.increment(
File «/usr/lib/python3/dist-packages/urllib3/util/retry.py», line 574, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=’api.telegram.org’, port=443): Max retries exceeded with url: /bot6091301464:AAHtp975wvJ6mI4FkXgy3MQ5ILBju33gzI8/getMe (Caused by NewConnectionError(‘<urllib3.connection.HTTPSConnection object at 0x7f2171282b30>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution’))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File «/usr/local/lib/python3.10/dist-packages/telebot/__init__.py», line 955, in infinity_polling
self.polling(non_stop=True, timeout=timeout, long_polling_timeout=long_polling_timeout,
File «/usr/local/lib/python3.10/dist-packages/telebot/__init__.py», line 1040, in polling
logger.info(‘Starting your bot with username: [@%s]’, self.user.username)
File «/usr/local/lib/python3.10/dist-packages/telebot/__init__.py», line 273, in user
self._user = self.get_me()
File «/usr/local/lib/python3.10/dist-packages/telebot/__init__.py», line 1236, in get_me
result = apihelper.get_me(self.token)
File «/usr/local/lib/python3.10/dist-packages/telebot/apihelper.py», line 196, in get_me
return _make_request(token, method_url)
File «/usr/local/lib/python3.10/dist-packages/telebot/apihelper.py», line 156, in _make_request
result = _get_req_session().request(
File «/usr/lib/python3/dist-packages/requests/sessions.py», line 542, in request
resp = self.send(prep, **send_kwargs)
File «/usr/lib/python3/dist-packages/requests/sessions.py», line 655, in send
r = adapter.send(request, **kwargs)
File «/usr/lib/python3/dist-packages/requests/adapters.py», line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host=’api.telegram.org’, port=443): Max retries exceeded with url: /bot6091301464:AAHtp975wvJ6mI4FkXgy3MQ5ILBju33gzI8/getMe (Caused by NewConnectionError(‘<urllib3.connection.HTTPSConnection object at 0x7f2171282b30>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution’))
«
^CTraceback (most recent call last):
File «/usr/lib/python3/dist-packages/urllib3/connection.py», line 169, in _new_conn
conn = connection.create_connection(
File «/usr/lib/python3/dist-packages/urllib3/util/connection.py», line 73, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
File «/usr/lib/python3.10/socket.py», line 955, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File «/usr/lib/python3/dist-packages/urllib3/connectionpool.py», line 699, in urlopen
httplib_response = self._make_request(
File «/usr/lib/python3/dist-packages/urllib3/connectionpool.py», line 382, in _make_request
self._validate_conn(conn)
File «/usr/lib/python3/dist-packages/urllib3/connectionpool.py», line 1012, in _validate_conn
conn.connect()
File «/usr/lib/python3/dist-packages/urllib3/connection.py», line 353, in connect
conn = self._new_conn()
File «/usr/lib/python3/dist-packages/urllib3/connection.py», line 181, in _new_conn
raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f2171282b30>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File «/usr/lib/python3/dist-packages/requests/adapters.py», line 439, in send
resp = conn.urlopen(
File «/usr/lib/python3/dist-packages/urllib3/connectionpool.py», line 755, in urlopen
retries = retries.increment(
File «/usr/lib/python3/dist-packages/urllib3/util/retry.py», line 574, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host=’api.telegram.org’, port=443): Max retries exceeded with url: /bot6091301464:AAHtp975wvJ6mI4FkXgy3MQ5ILBju33gzI8/getMe (Caused by NewConnectionError(‘<urllib3.connection.HTTPSConnection object at 0x7f2171282b30>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution’))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File «/usr/local/lib/python3.10/dist-packages/telebot/__init__.py», line 955, in infinity_polling
self.polling(non_stop=True, timeout=timeout, long_polling_timeout=long_polling_timeout,
File «/usr/local/lib/python3.10/dist-packages/telebot/__init__.py», line 1040, in polling
logger.info(‘Starting your bot with username: [@%s]’, self.user.username)
File «/usr/local/lib/python3.10/dist-packages/telebot/__init__.py», line 273, in user
self._user = self.get_me()
File «/usr/local/lib/python3.10/dist-packages/telebot/__init__.py», line 1236, in get_me
result = apihelper.get_me(self.token)
File «/usr/local/lib/python3.10/dist-packages/telebot/apihelper.py», line 196, in get_me
return _make_request(token, method_url)
File «/usr/local/lib/python3.10/dist-packages/telebot/apihelper.py», line 156, in _make_request
result = _get_req_session().request(
File «/usr/lib/python3/dist-packages/requests/sessions.py», line 542, in request
resp = self.send(prep, **send_kwargs)
File «/usr/lib/python3/dist-packages/requests/sessions.py», line 655, in send
r = adapter.send(request, **kwargs)
File «/usr/lib/python3/dist-packages/requests/adapters.py», line 516, in send
raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host=’api.telegram.org’, port=443): Max retries exceeded with url: /bot6091301464:AAHtp975wvJ6mI4FkXgy3MQ5ILBju33gzI8/getMe (Caused by NewConnectionError(‘<urllib3.connection.HTTPSConnection object at 0x7f2171282b30>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution’))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File «/root/tgbot/main.py», line 221, in <module>
bot.infinity_polling()
File «/usr/local/lib/python3.10/dist-packages/telebot/__init__.py», line 963, in infinity_polling
time.sleep(3)
Код бота(только main.py, остальные файлы не нужны, там все работает):
Кликните здесь для просмотра всего текста
Python | ||
|
Возможно кривой код, но я только учусь, всем спасибо.
0
Содержание
- 1 Разбираемся, почему не работает бот в Telegram
- 2 Как понять, что сервис не работает
- 3 Причины отказа
- 4 Ошибка на стороне сервера Телеграмм
- 5 Ошибка на стороне сервера программы
- 6 Ошибка в запросе
- 7 Проблема со связью
- 8 Технические работы
- 9 Большое количество запросов
Помимо основных функций мессенджера в Telegram имеются дополнительные программы, так называемые боты. Они способны в автоматическом режиме отвечать на заданные команды пользователя. Иногда виртуальные помощники перестают выполнять свои функции. Читайте дальше, чтобы узнать о причинах некорректной работы бота, а также что можно в данном случае предпринять.
Разбираемся, почему не работает бот в Telegram
Для каждой программы характерны временные сбои в работе. Пользователи Телеграмм также периодически сталкиваются с тем, что часть основного и вспомогательного функционала не работает. Такая ситуация вызывает трудности и неудобства для пользователя.
Как понять, что сервис не работает
Зачастую программа сама оповещает пользователя о прекращении своей деятельности. Это происходит в том случае, если разработчик бота предусмотрел создание такого сообщения. Пользователю может приходить уведомление об ошибке с текстом: „Cloudflare telegram bot“. В других случаях, бот попросту не отвечает на отправленные ему запросы.
Причины отказа
Существует несколько причин по которым бот отказывается выполнять функции, предусмотренные разработчиком. Как правило, все проблемы легко устраняются. К ним относятся:
- Неполадки на внутреннем сервере приложения.
- Ошибки на стороне бота.
- Пользователем неправильно введена команда.
- Проблемы с подключением к интернету.
- Проведение профилактических работ.
- Обработка большого количества команд.
- Использование устаревшей версии приложения.
Ошибка на стороне сервера Телеграмм
Корректная работа мессенджера основана на отправке программного кода, который создается специальной системой. Он обрабатывается сервером https//api.telegram.org. После чего сервер высылает текст пользователю. Если возникли какие-то неполадки на сервере, то ни один сервис работать не будет. Решить данную проблему пользователь самостоятельно не сможет. Необходимо просто подождать 10-20 минут, пока система возобновит работу.
Ошибка на стороне сервера программы
Робот в Телеграмм – виртуальный посредник между веб-сервисом и пользователем. Программу создают простые пользователи, либо разработчики приложения. Как правило, пользователи Телеграмм используют программу бесплатно. Однако, есть боты с платным функционалом. Работоспособность бота напрямую зависит от корректной работы сервера. Для функционирования каждого бота прописываются специальные коды и алгоритмы, затем их размещают на сервере.
Если программа первоначально неправильно прописана, она не будет функционировать корректно. Из-за допущенных погрешностей сервер программы не сможет обработать отправленную команду. Как результат – бот не отвечает на запрос пользователя. Пользователь не в силах исправить данную ошибку. Остается лишь ждать, пока проблему решит разработчик.
Когда бот остановился, не хочет выполнять команду, попробуйте его перезапустить через кнопку „Start“. Если ошибка появилась вновь, возможно пользователь зашел в „тупик“ (на устройстве открылся пустой экран) или не исполнился компонент экрана из-за некорректного исполнения.
Если ошибка в коде возникла в роботе, который создал пользователь лично, то проблему решить поможет @Fatherbot. С помощью бота можно найти в ранее созданных программах ошибки и исправить их. Пользователь после отправленного запроса получит инструкцию с указаниями для написания правильного кода. Для этого необходимо выполнить следующие действия:
- В строке поиска пропишите имя бота.
- В открывшемся списке аккаунтов выберите нужную программу.
- Добавьте бота в список контактов.
- Перейдите к диалоговому окну и нажмите кнопку „Начать“.
Если бот Телеграмм некорректно выполняет работу в групповых чатах, тогда @Fatherbot отправьте команду с текстом „/set privacy“. Руководство мессенджера установило для некоторых ботов ограничения для участия в групповых чатах. Подробную информацию о функционале ботов и об их командах можно найти в разделе „Помощь“
Возобновление работы бота невозможно, если сервисный центр мессенджера заблокировал или удалил его профиль. Такие радикальные меры предпринимаются к невостребованным аккаунтам, а также к тем, на которые часто поступают жалобы от пользователей. Руководство Телеграмм настоятельно рекомендует пользователям приложения не устанавливать подозрительных ботов. Они могут быть поддельными, создаваться вместо заблокированных профилей. Их создают мошенники в корыстных целях. Для того чтобы отличить настоящего бота от фейкового, обратите внимание на его адрес. Он находится в профиле под именем робота. Адрес должен начинаться с символа email protected.
Трудности в использовании функций бота могут возникать, если при создании программы пользователь не добавил определенный мультимедийный файл.
Ошибка в запросе
Для корректной работы с ботом в Телеграмм необходимо использовать только задокументированные команды. Если пользователь введет стороннюю фразу или допустит ошибку при формулировке команды, программа ее не поймет. Бот не получит отправленное сообщение с запросом. Вследствии чего задание пользователя не будет выполнено. Как правило, боты имеют стандартные команды, чтобы максимально упростить их взаимодействие с пользователем. Однако, приложение предоставляет возможность разработчикам добавлять новые команды, установленной формы.
Проблема со связью
Трудности с использованием функций программы могут возникать когда нет интернета со стороны пользователя, либо сервера. Для последнего это является чрезвычайной ситуацией. Отсутствие связи у юзеров частое явление, особенно для тех, кто использует мобильный интернет. Чтобы проверить качество связи на смартфоне, отключите и включите использование мобильных данных. Другой вариант, отключите мобильные данные и включите wi-fi. Затем снова активируйте мобильные данные.
Если вы входите в приложение через ПК, то возможно проблема связана с роутером или интернет-кабелем. Проверьте на целостность шнур, либо перезапустите роутер. Позвоните провайдеру, выясните почему нет интернета. Если нет интернета в браузере, обратитесь в службу технической безопасности. Когда пользователь свободно заходит через браузер на другие сайты, значит проблема с сервером Телеграмм. Подождите пока связь восстановиться.
Технические работы
Если причиной отказа выполнения запроса ботом возникает из-за технических работ, то пользователь получит соответствующее уведомление. Телеграмм – безвозмездный и удобный мессенджер. Все сервера требуют периодической перезагрузки, чтобы обеспечить быструю и стабильную работу. Возможно отправка команды совпала с проведением профилактических работ в Телеграмм. Дождитесь когда они закончатся.
Большое количество запросов
Зачастую, такое случается с популярными аккаунтами, которые используются многими пользователями. Если бот находится на слабом сервере, он попросту может не справиться с обработкой большого количества заданий. Он начинает зависать или отказывается работать. Повторите запрос через пять минут. Если причина некорректной работы бота в этом, пользователю придет ответ немного позже.
Будем рады, если представленная в статье информация стала полезной. Не забудьте поставить лайк и поделиться ссылкой с друзьями. Вдруг возникнут вопросы по теме, оставьте их в комментариях ниже.