Как можно сохранить текст "hello", полученный от бота через ссылку <a href="https://api.telegram.org/bot/sendMessage?chat_id=&text='hello" rel="nofollow">https://api.telegram.org/bot/sendMessage?chat_id=&...</a>, в базе данных?
Для сохранения сырых API запросов в базе данных при использовании Python для создания ботов в Телеграме, можно использовать библиотеку для работы с базами данных, такую как SQLAlchemy, Peewee или Django ORM.
Пример кода, который сохранит сырые API запросы в базу данных с использованием SQLAlchemy:
```python
from sqlalchemy import create_engine, Column, Integer, String, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
import json
from datetime import datetime
Base = declarative_base()
class TelegramRequest(Base):
__tablename__ = 'telegram_requests'
id = Column(Integer, primary_key=True)
method = Column(String)
params = Column(String)
timestamp = Column(DateTime, default=datetime.now)
# Подключение к базе данных SQLite
engine = create_engine('sqlite:///telegram_requests.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
# Пример сырого API запроса
raw_request = {
'method': 'sendMessage',
'params': {
'chat_id': '123456789',
'text': 'hello'
}
}
# Сохранение сырого API запроса в базу данных
telegram_request = TelegramRequest(method=raw_request['method'], params=json.dumps(raw_request['params']))
session.add(telegram_request)
session.commit()
# Закрытие сессии
session.close()
```
Чтобы сохранить текст "hello", полученный от бота через API запрос, необходимо добавить дополнительную обработку ответа от сервера Телеграма. Например, можно распарсить ответ и сохранить текст в базу данных таким же образом как показано выше, используя полученный текст вместо "hello".
Надеюсь, это поможет вам сохранить сырые API запросы в базу данных при работе с ботами в Телеграме на Python!
Воспользуйтесь библиотекой Peewee:
from database.models import History @bot.message_handler(content_types=["text"]) def message_users(message) -> None: """Отслеживание текстовых сообщений пользователя""" if filter_unregistred_users(message): bot.reply_to(message, "Вы не можете писать сообщения. Зарегистрируйстсь, набрав команду /start") return text_msg = message.text.lower().replace("!", "").replace(".", "") if text_msg in ["привет", "приветик", "приветствую", "здрасьте", "здорова", "здравствуйте", "hello"]: bot.reply_to(message, "И я Вас горячо приветствую!") else: bot.reply_to(message, "Я Вас не понимаю! Мой A.I. весьма ограничен(") History.create(chat_id=message.chat.id, user_name=message.chat.username, date=str(datetime.now()), command=message.text, result="text message")
в этом примере ведется запись в БД (таблица History) сообщения пользователя.