问题描述
10分钟后-2小时后我启动机器人时,出现了以下异常:can't use getUpdates method while webhook is active
。
我已经尝试过删除https://api.telegram.org/bot{token}/deleteWebhook这样的webhook,但没有帮助。
此外,我注意到在引发异常后,漫游器会回复所有带有标签的消息。
这是机器人主文件的一部分(您可以在我的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()
如果有人知道如何解决该问题,请帮助我!
解决方法
您公开发布了令牌,任何人都可以在未经您许可的情况下运行您的机器人。并贴上贴纸或其他任何内容。
只有在未设置Webhooks的情况下,轮询模式(带有getUpdates)只能同时运行一次。好像有人在一段时间后{models = [Vehicle,NavigationRecord]
admin.site.register(models)
)反复设置了一个网络挂钩。
为避免这种情况-从GitHub删除this file (token
)并从代码中删除所有内容。请改用environment variables。
并将Environment:
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/navigation/navigationrecord/add/
Django Version: 2.2.13
Python Version: 3.7.0
Installed Applications:
['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','navigation']
Installed Middleware:
['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware']
Template error:
In template C:\Users\edeni\senior\myenv\lib\site-packages\django\contrib\admin\templates\admin\includes\fieldset.html,error at line 19
__str__ returned non-string (type int)
9 : {% for field in line %}
10 : <div{% if not line.fields|length_is:'1' %} class="fieldBox{% if field.field.name %} field-{{ field.field.name }}{% endif %}{% if not field.is_readonly and field.errors %} errors{% endif %}{% if field.field.is_hidden %} hidden{% endif %}"{% elif field.is_checkbox %} class="checkbox-row"{% endif %}>
11 : {% if not line.fields|length_is:'1' and not field.is_readonly %}{{ field.errors }}{% endif %}
12 : {% if field.is_checkbox %}
13 : {{ field.field }}{{ field.label_tag }}
14 : {% else %}
15 : {{ field.label_tag }}
16 : {% if field.is_readonly %}
17 : <div class="readonly">{{ field.contents }}</div>
18 : {% else %}
19 : {{ field.field }}
20 : {% endif %}
21 : {% endif %}
22 : {% if field.field.help_text %}
23 : <div class="help">{{ field.field.help_text|safe }}</div>
24 : {% endif %}
25 : </div>
26 : {% endfor %}
27 : </div>
28 : {% endfor %}
29 : </fieldset>
Traceback:
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\core\handlers\exception.py" in inner
34. response = get_response(request)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\core\handlers\base.py" in _get_response
145. response = self.process_exception_by_middleware(e,request)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\core\handlers\base.py" in _get_response
143. response = response.render()
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\response.py" in render
106. self.content = self.rendered_content
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\response.py" in rendered_content
83. content = template.render(context,self._request)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\backends\django.py" in render
61. return self.template.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
171. return self._render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\loader_tags.py" in render
150. return compiled_parent._render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\loader_tags.py" in render
150. return compiled_parent._render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\loader_tags.py" in render
62. result = block.nodelist.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\loader_tags.py" in render
62. result = block.nodelist.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\defaulttags.py" in render
209. nodelist.append(node.render_annotated(context))
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\loader_tags.py" in render
188. return template.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
173. return self._render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in _render
163. return self.nodelist.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\defaulttags.py" in render
209. nodelist.append(node.render_annotated(context))
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\defaulttags.py" in render
209. nodelist.append(node.render_annotated(context))
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\defaulttags.py" in render
309. return nodelist.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\defaulttags.py" in render
309. return nodelist.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
937. bit = node.render_annotated(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_annotated
904. return self.render(context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render
993. return render_value_in_context(output,context)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\template\base.py" in render_value_in_context
972. value = str(value)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\utils\html.py" in <lambda>
388. klass.__str__ = lambda self: mark_safe(klass_str(self))
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\forms\boundfield.py" in __str__
33. return self.as_widget()
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\forms\boundfield.py" in as_widget
93. renderer=self.form.renderer,File "C:\Users\edeni\senior\myenv\lib\site-packages\django\forms\widgets.py" in render
241. context = self.get_context(name,value,attrs)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\contrib\admin\widgets.py" in get_context
288. 'rendered_widget': self.widget.render(name,attrs),attrs)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\forms\widgets.py" in get_context
678. context = super().get_context(name,attrs)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\forms\widgets.py" in get_context
639. context['widget']['optgroups'] = self.optgroups(name,context['widget']['value'],attrs)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\forms\widgets.py" in optgroups
587. for index,(option_value,option_label) in enumerate(self.choices):
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\forms\models.py" in __iter__
1138. yield self.choice(obj)
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\forms\models.py" in choice
1150. return (self.field.prepare_value(obj),self.field.label_from_instance(obj))
File "C:\Users\edeni\senior\myenv\lib\site-packages\django\forms\models.py" in label_from_instance
1216. return str(obj)
Exception Type: TypeError at /admin/navigation/navigationrecord/add/
Exception Value: __str__ returned non-string (type int)
文件放入.gitignore
文件。
之后,使用@BotFather撤消您的漫游器令牌,并在您使用它的所有位置对其进行更新。