Как fastapi передать id пользователя в тг и показывать данные при запросе «../user/id»?

Чтобы реализовать передачу ID пользователя в Telegram и показывать данные при запросе ../user/id с использованием FastAPI, необходимо следовать нескольким шагам.

1. Начнем с создания FastAPI приложения:

from fastapi import FastAPI

app = FastAPI()

2. Определим ендпоинт для отображения данных пользователя по ID:

@app.get("/user/{user_id}")
async def read_user(user_id: int):
    # Здесь можно написать логику для получения данных пользователя по его ID
    # Например, запрос к базе данных
    return {"user_id": user_id, "name": "John Doe", "age": 30}

3. Теперь нам нужно отправить данные в Telegram. Для этого мы можем использовать библиотеку python-telegram-bot. Установим её с помощью pip:

pip install python-telegram-bot

4. Создадим простой бот в Telegram и получим его токен.

5. Добавим отправку сообщения в Telegram в нашу функцию read_user:

from telegram import Bot

telegram_bot = Bot(token='YOUR_TELEGRAM_BOT_TOKEN')

@app.get("/user/{user_id}")
async def read_user(user_id: int):
    # Логика получения данных пользователя по его ID
    user_data = {"user_id": user_id, "name": "John Doe", "age": 30}
    
    # Отправка данных в Telegram
    message = f"User ID: {user_data['user_id']}nName: {user_data['name']}nAge: {user_data['age']}"
    chat_id = 'YOUR_CHAT_ID'  # ID чата, куда нужно отправить сообщение
    telegram_bot.send_message(chat_id=chat_id, text=message)
    
    return user_data

6. В результате при запросе ../user/123 данные о пользователе с ID=123 будут отображаться на сервере, а также отправляться в ваш Telegram чат.

Убедитесь, что у вас есть соответствующие права доступа к базе данных (если используется) и к Telegram API для отправки сообщений.