Trying to set up a web bot for the bot. Line
bot.set_webhook(url=WEBHOOK_URL_BASE + WEBHOOK_URL_PATH,certificate=open(WEBHOOK_SSL_CERT, 'r')) Gives an error message:
The server returned HTTP 429 Too Many Requests.
The bot does not send any messages! Especially 30 pieces per second ...
I tried:
register a new bot
make new certificates
waited a day several times
Does not help.
Google ... Yandex ...
The code itself (initially worked !!!):
#!/usr/bin/python3.4 # -*- coding: utf-8 -*- import telebot import cherrypy import config WEBHOOK_HOST = 'ХХ.ХХ.ХХ.ХХ' WEBHOOK_PORT = 443 # 443, 80, 88 или 8443 (порт должен быть открыт!) WEBHOOK_LISTEN = '192.168.0.2' # На некоторых серверах придется указывать такой же IP, что и выше WEBHOOK_SSL_CERT = './webhook_cert.pem' # Путь к сертификату WEBHOOK_SSL_PRIV = './webhook_pkey.pem' # Путь к приватному ключу WEBHOOK_URL_BASE = "https://%s:%s" % (WEBHOOK_HOST, WEBHOOK_PORT) WEBHOOK_URL_PATH = "/%s/" % (config.token) bot = telebot.TeleBot(config.token) # Наш вебхук-сервер class WebhookServer(object): @cherrypy.expose def index(self): if 'content-length' in cherrypy.request.headers and \ 'content-type' in cherrypy.request.headers and \ cherrypy.request.headers['content-type'] == 'application/json': length = int(cherrypy.request.headers['content-length']) json_string = cherrypy.request.body.read(length).decode("utf-8") update = telebot.types.Update.de_json(json_string) # Эта функция обеспечивает проверку входящего сообщения bot.process_new_updates([update]) return '' else: raise cherrypy.HTTPError(403) # Хэндлер на все текстовые сообщения @bot.message_handler(func=lambda message: True, content_types=['text']) def echo_message(message): bot.reply_to(message, message.text) # Снимаем вебхук перед повторной установкой (избавляет от некоторых проблем) bot.remove_webhook() # Ставим заново вебхук bot.set_webhook(url=WEBHOOK_URL_BASE + WEBHOOK_URL_PATH,certificate=open(WEBHOOK_SSL_CERT, 'r')) # Указываем настройки сервера CherryPy cherrypy.config.update({ 'server.socket_host': WEBHOOK_LISTEN, 'server.socket_port': WEBHOOK_PORT, 'server.ssl_module': 'builtin', 'server.ssl_certificate': WEBHOOK_SSL_CERT, 'server.ssl_private_key': WEBHOOK_SSL_PRIV }) # Собственно, запуск! cherrypy.quickstart(WebhookServer(), WEBHOOK_URL_PATH, {'/': {}})