@Wct2024

Как настроить webhook для бота aiogram 3 и nginx?

Не могу настроить webhook для бота телеграм.

У меня VPS сервер. На нём лежит сайт и еще, хочу чтобы с ним в связке работал телеграм бот. Для этого надо настроить webhook.

Вот условный код бота на python:

main.py
import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.filters import CommandStart
from aiogram.types import InlineKeyboardButton, WebAppInfo
from aiogram.utils.keyboard import InlineKeyboardBuilder
import config

bot = Bot(token=config.TELEGRAM_API_TOKEN)
dp = Dispatcher()

# Главное меню
# И так далее
#...........

# Запуск бота
async def main():
    await dp.start_polling(bot)

if __name__ == "__main__":
    asyncio.run(main())


Настройка моего сайта nginx

mysite.service
# Блок для перенаправления HTTP на HTTPS
server {
    listen 80;
    server_name mysite.com;

    return 301 https://$host$request_uri;
}

# Блок для HTTPS
server {
    listen 443 ssl;
    server_name mysite.com;

    ssl_certificate /home/mysite/site/SSL/fullchain.pem;
    ssl_certificate_key /home/mysite/site/SSL/private.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

Что мне прописывать в файле main.py и в файле mysite.service и может где-то в каких-то других?

Какой порт и как?
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Код на python использует polling, причём тут вебхуки? Для вебхуков надо web app сделать, который их принимает. Вот в документации пример: https://docs.aiogram.dev/en/latest/dispatcher/webh... и там же есть образец настройки nginx.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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