Telegram Bot с WebHook не работает на DigitalOcean - PullRequest
0 голосов
/ 01 апреля 2020

Я собираюсь настроить своего бота Telegram с помощью webhook. Я настроил все в соответствии с инструкциями, которые я нашел из действительных источников.

Однако бот не получает обновлений webhook, и при отправке запроса «getWebhookInfo» в Telegram API я получаю ошибку ниже.

{"ok":true,"result":{"url":"https://161.35.18.8/1058222550:XXXXXXXXXXXXXXXrKEDw7-qx30Ww","has_custom_certificate":true,"pending_update_count":4,"last_error_date":1585773597,"last_error_message":"Connection timed out","max_connections":40}}

Вот конфигурация, которую я выполнил для дроплета на Digitalocean.

  • Создал самозаверяющий ключ и пару сертификатов с OpenSSL и поместил их в / etc / ssl / private / и / etc / ssl / certs /

  • Брандмауэр был настроен и ниже указано состояние FW:

To                         Action      From
--                         ------      ----
Nginx HTTP                 ALLOW       Anywhere
22/tcp                     ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
Nginx HTTP (v6)            ALLOW       Anywhere (v6)
22/tcp (v6)                ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)
server {
    listen              443 ssl;
    server_name         SERVER_IP_ADDRESS;
    ssl_certificate     bot.pem;
    ssl_certificate_key private.key;

    location /TOKEN1 {
        proxy_pass http://127.0.0.1:5000/TOKEN1/;
    }

    location /TOKEN2 {
        proxy_pass http://127.0.0.1:5001/TOKEN2/;
    }
}
  • Протестированные Nginx конфигурации и перезапустите веб-сервер, выполнив sudo nginx -t && sudo systemctl restart nginx и получим следующий вывод:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

В моем файле приложения, работающем на сервере, скрипт python выглядит так, чтобы получать обновления от Telegram:

updater.start_webhook(listen='127.0.0.1', port=5000, url_path='TokenID')
updater.bot.set_webhook(webhook_url='https://<DropletIP>/TokenId',
                        certificate=open('bot.pem', 'rb'))

Я что-то упустил? Есть идеи, что может быть причиной проблемы? Любая помощь очень ценится. Спасибо.

...