suggests = await get_suggests(user_id) return alice_request.response('Привет! Купи слона!', buttons=suggests) # Пользователь соглашается - команда соответствует одному из слов: @dp.request_handler(commands=['ладно', 'куплю', 'покупаю', 'хорошо', 'окей']) async def handle_user_agrees(alice_request): # Отвечаем пользователю, что слона можно купить на Яндекс.Маркете # Ответ генерируется автоматически на основе запроса, # туда подставляются сессия и версия апи. # Текст ответа - единственный необходимый параметр # Кнопки передаем по ключевому слову. return alice_request.response( f'Слона можно найти на Яндекс.Маркете!\n{ele_link}') # Все остальные запросы попадают в этот хэндлер, так как у него не настроены фильтры @dp.request_handler() async def handle_all_other_requests(alice_request): # Всеми силами убеждаем пользователя купить слона, # предлагаем варианты ответа на основе текста запроса requst_text = alice_request.request.original_utterance suggests = await get_suggests(alice_request.session.user_id) return alice_request.response( f'Все говорят "{requst_text}", а ты купи слона!', buttons=suggests) if __name__ == '__main__': app = get_new_configured_app(dispatchers=dp) web.run_app(app, host=WEBAPP_HOST, port=WEBAPP_PORT)
import os import dotenv import logging from dotenv import load_dotenv from aiohttp import web from aioalice import Dispatcher, get_new_configured_app #Setting logging #initializing environment variables dotenv_path = os.path.join(os.path.dirname(__file__,), '.env') if os.path.exists(dotenv_path): load_dotenv(dotenv_path) WEBHOOK_URL_PATH = os.getenv('WEBHOOK_URL_PATH') WEBAPP_HOST = os.getenv('WEBAPP_HOST') WEBAPP_PORT = os.getenv('WEBAPP_PORT') #Setting basic dispatcher dp = Dispatcher() @dp.request_handler() async def handle_all_requests(alice_request): return alice.request.response('Hello world!') if __name__ == '__main__': app = get_new_configured_app(dispatcher=dp, path=WEBHOOK_URL_PATH) web.run_app(app, host=WEBAPP_HOST, port=WEBAPP_PORT)
from aiohttp import web from aioalice import Dispatcher, get_new_configured_app WEBAPP_HOST = 'localhost' WEBAPP_PORT = 3001 dp_first = Dispatcher(name="first", path="/first") dp_second = Dispatcher(name="second", path="/second") @dp_first.request_handler() async def handle_all_requests(alice_request): return alice_request.response('Привет! Я первый навык') @dp_second.request_handler() async def handle_all_requests(alice_request): return alice_request.response("Приятно познакомится, я второй навык") if __name__ == '__main__': app = get_new_configured_app(dispatchers=[dp_first, dp_second]) web.run_app(app, host=WEBAPP_HOST, port=WEBAPP_PORT)