Задать вопрос
@persilik

Не работает код aiogram3?

Недавно начал изучение aiogram3
Нужно принять данные которые присылает телега на яндекс клауд функцию через вебхук.
Точка входа в яндекс функции index.handler
Смог найти только несколько строк кода, но даже они не работают. Буду очень благодарен если поможете.

index.py
import json
from aiogram import types
from main import dp

async def handler(event, _):
    body = json.loads(event['body'])

    bot.set_current(dp.bot)
    update = types.update.Update(что то передаём)
    await dp.feed_update(update)

    return {
        'statusCode': 200,
        'body': '!'
    }

main.py
from aiogram import Bot, Dispatcher, types
from aiogram.types import Message

bot = Bot(token='', parse_mode="HTML")
dp = Dispatcher()

@dp.message()
async def handle_text(message: Message) -> None:
    await message.answer(message.text)
  • Вопрос задан
  • 618 просмотров
Подписаться 2 Простой Комментировать
Ответ пользователя GofMan33333 К ответам на вопрос (2)
@GofMan33333
Чтобы принять данные, которые присылает Телеграм на яндекс клауд функцию через вебхук, вам нужно сделать следующее:

Убедитесь, что у вас уже настроен вебхук для бота в Телеграме. Для этого вызовите метод setWebhook у бота с URL, который указывает на яндекс клауд функцию.

В функции index.handler вам нужно извлечь данные из запроса (event), который приходит в яндекс клауд функцию. В частности, вам нужно извлечь тело запроса (event['body']) и декодировать его из JSON формата. Получившийся объект может быть преобразован в тип Update с помощью конструктора aiogram.types.Update.

После того, как вы создадите экземпляр Update, вы можете обработать его с помощью Dispatcher. Для этого вызовите метод feed_update у объекта Dispatcher (dp).

Наконец, не забудьте вернуть HTTP ответ
Ответ написан