Задать вопрос
@HELP_PLS

Не запускается tg bot на webhookах?

Делаю бота в телеге (пытаюсь)
на win 10
ssl делаю
ключ и сертификат закинул в ту же папку

5b81a9fdcabe8996707427.png
import telebot
import cherrypy
import config
    
WEBHOOK_HOST = '37.73.147.137'
WEBHOOK_PORT = 80  # 443, 80, 88 или 8443 (порт должен быть открыт!)
WEBHOOK_LISTEN = '0.0.0.0'  
    
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.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, {'/': {}})
  • Вопрос задан
  • 339 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@AlmazKayum
OSError.
Первый совет: проверить путь к сертификатам.
В винде не шарю, но выглядит как линуксе, а не как в винде.
Ответ написан
Комментировать
Desem
@Desem
1. Удостоверьтесь в работе веб сервера на вашей вин машине (файрволы, антивири и т.д.)
2. Если вы в России, то РКН ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы