Advertisement
Guest User

Untitled

a guest
Sep 28th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. bot.set_webhook(url=WEBHOOK_URL_BASE + WEBHOOK_URL_PATH,certificate=open(WEBHOOK_SSL_CERT, 'r'))
  2.  
  3. #!/usr/bin/python3.4
  4. # -*- coding: utf-8 -*-
  5. import telebot
  6. import cherrypy
  7. import config
  8.  
  9. WEBHOOK_HOST = 'ХХ.ХХ.ХХ.ХХ'
  10. WEBHOOK_PORT = 443 # 443, 80, 88 или 8443 (порт должен быть открыт!)
  11. WEBHOOK_LISTEN = '192.168.0.2' # На некоторых серверах придется указывать такой же IP, что и выше
  12.  
  13. WEBHOOK_SSL_CERT = './webhook_cert.pem' # Путь к сертификату
  14. WEBHOOK_SSL_PRIV = './webhook_pkey.pem' # Путь к приватному ключу
  15.  
  16. WEBHOOK_URL_BASE = "https://%s:%s" % (WEBHOOK_HOST, WEBHOOK_PORT)
  17. WEBHOOK_URL_PATH = "/%s/" % (config.token)
  18.  
  19. bot = telebot.TeleBot(config.token)
  20.  
  21. # Наш вебхук-сервер
  22. class WebhookServer(object):
  23. @cherrypy.expose
  24. def index(self):
  25. if 'content-length' in cherrypy.request.headers and
  26. 'content-type' in cherrypy.request.headers and
  27. cherrypy.request.headers['content-type'] == 'application/json':
  28. length = int(cherrypy.request.headers['content-length'])
  29. json_string = cherrypy.request.body.read(length).decode("utf-8")
  30. update = telebot.types.Update.de_json(json_string)
  31. # Эта функция обеспечивает проверку входящего сообщения
  32. bot.process_new_updates([update])
  33. return ''
  34. else:
  35. raise cherrypy.HTTPError(403)
  36.  
  37. # Хэндлер на все текстовые сообщения
  38. @bot.message_handler(func=lambda message: True, content_types=['text'])
  39. def echo_message(message):
  40. bot.reply_to(message, message.text)
  41.  
  42. # Снимаем вебхук перед повторной установкой (избавляет от некоторых проблем)
  43. bot.remove_webhook()
  44.  
  45. # Ставим заново вебхук
  46. bot.set_webhook(url=WEBHOOK_URL_BASE + WEBHOOK_URL_PATH,certificate=open(WEBHOOK_SSL_CERT, 'r'))
  47.  
  48. # Указываем настройки сервера CherryPy
  49. cherrypy.config.update({
  50. 'server.socket_host': WEBHOOK_LISTEN,
  51. 'server.socket_port': WEBHOOK_PORT,
  52. 'server.ssl_module': 'builtin',
  53. 'server.ssl_certificate': WEBHOOK_SSL_CERT,
  54. 'server.ssl_private_key': WEBHOOK_SSL_PRIV
  55. })
  56.  
  57. # Собственно, запуск!
  58. cherrypy.quickstart(WebhookServer(), WEBHOOK_URL_PATH, {'/': {}})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement