Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bot.set_webhook(url=WEBHOOK_URL_BASE + WEBHOOK_URL_PATH,certificate=open(WEBHOOK_SSL_CERT, 'r'))
- #!/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, {'/': {}})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement