[英]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.