Как отправить сообщение с инлайн кнопками от лица пользователя?

Я заметил, что пользователи могут пересылать сообщения с инлайн кнопками от имени бота. В данный момент я разрабатываю бота на aiogram и хотел бы, чтобы он пересылал некоторые сообщения с инлайн кнопками через мой аккаунт с использованием pyrogram (метод forward_messages). Однако в результате пересылки в кнопках отсутствует функционал, отправляется только текст. Как мне решить эту проблему?
  • 11 октября 2024 г. 1:24
Ответы на вопрос 2
К сожалению, в Telegram при пересылке сообщений (методом forward_messages) кнопки инлайн действовать не будут. Это связано с тем, что при пересылке сохраняется только текстовые данные сообщения, и информация о кнопках не передается.

Чтобы решить эту проблему и отправить сообщение с инлайн кнопками от своего аккаунта (через Pyrogram), вам нужно отправить новое сообщение с кнопками вручную вместо пересылки. Вот пример, как это сделать:

1. Получите текст и данные кнопок из изначального сообщения.
2. Создайте новое сообщение с использованием метода `send_message` в Pyrogram и добавьте в него инлайн кнопки.

Вот пример кода, который может помочь:

```python
from pyrogram import Client
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup

app = Client("my_account")

@app.on_message()
def handle_message(client, message):
    if message.text == "/start":
        # Предположим, что это сообщение, которое вы хотите переслать с кнопками
        original_message_text = "Это оригинальное сообщение"
        inline_buttons = [
            [InlineKeyboardButton("Кнопка 1", callback_data="button_1")],
            [InlineKeyboardButton("Кнопка 2", callback_data="button_2")]
        ]
        
        # Создаем разметку для инлайн кнопок
        reply_markup = InlineKeyboardMarkup(inline_buttons)

        # Отправляем новое сообщение с кнопками
        client.send_message(
            chat_id=message.chat.id,
            text=original_message_text,
            reply_markup=reply_markup
        )

app.run()
```

В этом примере, когда бот получает команду `/start`, он отправляет новое сообщение с заданным текстом и инлайн кнопками. Замените `original_message_text` и `inline_buttons` на нужные вам данные.

Такой подход позволяет избежать проблемы с работой инлайн кнопок, так как вы создаете новое сообщение с необходимыми компонентами.
Inline кнопки с сообщением может отправлять только бот
Похожие вопросы