LINUX.ORG.RU

Почему не работает вебхук для телеграм бота?

 , ,


1

1

Код бота:

import cherrypy
import telebot

BOT_TOKEN = "bot:token"

bot = telebot.TeleBot(BOT_TOKEN)

@bot.message_handler(commands=["start"])
def command_start(message):
    bot.send_message(message.chat.id, "Привет! Я бот номер 1")

class WebhookServer(object):
    @cherrypy.expose
    def index(self):
        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 ''

if __name__ == '__main__':
    bot.remove_webhook()
    bot.set_webhook(url='https://myserver.tk/bot')
    cherrypy.config.update({
        'server.socket_host': '127.0.0.1',
        'server.socket_port': 7771,
        'engine.autoreload.on': False
    })
    cherrypy.quickstart(WebhookServer(), '/', {'/': {}})


nginx:
location /bot {
    proxy_pass         http://127.0.0.1:7771/;
    proxy_redirect     off;
    proxy_set_header   Host $host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Host $server_name;
  }


И ничего, на /start не реагирует
Через какое-то время валится с ошибкой:
telebot.apihelper.ApiException: A request to the Telegram API was unsuccessful. The server returned HTTP 504 Gateway Time-out. Response body:
[b'{"ok":false,"error_code":504,"description":"Gateway Timeout"}']


на сервере сертификаты от Let's Encrypt

★★★★★

Сервер случаем не на территории рф? Ну и проверь доступно api эндпоинтов телеграма.

Deleted ()
Ответ на: комментарий от Deleted

Нидерланды

проверь доступно api эндпоинтов телеграма

это как сделать?

Qwentor ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.