[英]Welcome Message isn't work because GetUpdates Telegram Bot API can't record joined notification update in supergroup
[英]Telegram bot - can't use getUpdates method while webhook is active
当我在 10 分钟后启动机器人时 - 2 小时出现异常: can't use getUpdates method while webhook is active
。
我已经尝试删除这样的 webhook: https://api.telegram.org/bot{token}/deleteWebhook ,但它没有帮助。
另外,我注意到在引发异常后,bot 会回复带有贴纸的任何消息。
这是机器人主文件的一部分(整个项目你可以在我的 GitHub 上看到 - https://github.com/MartsinovichDanya/Task_manager_telegram )
from telegram.ext import Updater, MessageHandler, Filters, CommandHandler
from telegram import ReplyKeyboardRemove
# ...
updater = Updater(TOKEN)
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
# Клавиатура Босса
dp.add_handler(MessageHandler(Filters.regex('Добавить задачу в проект'), write_proj_add_task))
dp.add_handler(MessageHandler(Filters.regex('Удалить задачу из проекта'), write_proj_delete_task))
dp.add_handler(MessageHandler(Filters.regex('Проекты'), project_options))
dp.add_handler(MessageHandler(Filters.regex('Задачи'), task_options))
dp.add_handler(MessageHandler(Filters.regex('Сотрудники'), employee_options))
dp.add_handler(MessageHandler(Filters.regex('Добавить проект'), write_add_project))
dp.add_handler(MessageHandler(Filters.regex('Удалить проект'), write_delete_project))
dp.add_handler(MessageHandler(Filters.regex('Просмотр проектов'), select_project))
dp.add_handler(MessageHandler(Filters.regex('Добавить задачу'), write_add_task))
dp.add_handler(MessageHandler(Filters.regex('Удалить задачу'), write_delete_task))
dp.add_handler(MessageHandler(Filters.regex('Просмотр задач'), task_preview))
dp.add_handler(MessageHandler(Filters.regex('Добавить сотрудника'), write_add_employee))
dp.add_handler(MessageHandler(Filters.regex('Удалить сотрудника'), write_delete_employee))
dp.add_handler(MessageHandler(Filters.regex('Просмотр сотрудников'), select_employee))
dp.add_handler(MessageHandler(Filters.regex('Главное меню'), start))
dp.add_handler(MessageHandler(Filters.regex('Отчёты по Проектам'), project_report))
dp.add_handler(MessageHandler(Filters.regex('Отчёты по Задачам'), task_report))
dp.add_handler(MessageHandler(Filters.regex('Отчёты по Сотрудникам'), employee_report))
dp.add_handler(MessageHandler(Filters.regex('Отчёты'), report))
dp.add_handler(MessageHandler(Filters.regex('Назад'), back_to_report))
# Клавиатура сотрудника
dp.add_handler(MessageHandler(Filters.regex('Просмотр моих задач'), employee_task_preview))
dp.add_handler(MessageHandler(Filters.regex('Выполнено'), select_done_task))
# Создаём и удаляем тестовый обработчик текстовых сообщений (команд)
projects_list = []
employee_list = []
em = EmployeeModel(db.get_connection())
for e in em.get_all():
employee_list.append(e[1])
pm = ProjectModel(db.get_connection())
for p in pm.get_all():
projects_list.append(p[1])
# Создаём обработчик текстовых сообщений типа Filters.text
text_handler = MessageHandler(Filters.text, global_function)
# Регистрируем обработчик в диспетчере.
dp.add_handler(text_handler)
# Запускаем цикл приема и обработки сообщений
updater.start_polling()
# Отправляем http запрос
url = 'https://api.telegram.org/<bot_name_here>:<bot_token_here>/deleteWebhook'
req = requests.get(url)
print(req.status_code)
# Ждём завершения приложения при нажатии клавиш Ctrl+C
updater.idle()
如果有人知道如何解决这个问题,请帮助我!
您公开发布了您的令牌,任何人都可以在未经您许可的情况下运行您的机器人。 还可以回复贴纸或其他任何东西。
轮询模式(使用 getUpdates)只能同时运行一次,并且仅当未设置 Webhooks 时。 并且看起来有人在一段时间( 10 minutes - 2 hours
)后反复设置网络钩子。
为避免这种情况 - 从 GitHub 中删除此文件 ( token
)并从代码中删除所有位置。 改用环境变量。
并将token
文件放入.gitignore
文件。
之后使用@BotFather撤销您的机器人的令牌并在您使用它的任何地方更新它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.