Как получить сообщение, на которое ответил пользователь?

Ссылка скопирована
1 ответ

Мне нужно получить сообщение на которое ответил пользователь, но нужно передавать переменную сообщения на которое отвечено, если оно является постом в канале.

# Получить ID поста (опционально)     post_id = None     if message.reply_to_message:         reply_to_message_id = message.reply_to_message.message_id          # Получить информацию о сообщении, на которое отвечает пользователь         reply_to_message = bot.get_message(message.chat.id,reply_to_message_id)          # Проверить, является ли сообщение постом в канале         if reply_to_message.chat.type == "channel":             post_id = reply_to_message_id

# Получить ID поста (опционально) post_id = None if message.reply_to_message: reply_to_message_id = message.reply_to_message.message_id # Получить информацию о сообщении, на которое отвечает пользователь reply_to_message = bot.get_message(message.chat.id,reply_to_message_id) # Проверить, является ли сообщение постом в канале if reply_to_message.chat.type == "channel": post_id = reply_to_message_id

Основная проблема в этом: AttributeError: 'TeleBot' object has no attribute 'get_message'. Did you mean: 'send_message'?

Дополнительно:

Ответы:

А зачем ты делаешь get_message(), если message.reply_to_message уже должен содержать информацию о сообщении, на которое был сделан ответ?

  • Мне нужно проверять его, является ли оно сообщением из канала.
  • yann1nnn, перечитай мой ответ внимательно.
    Можно ли сделать сразу message.reply_to_message.chat.type?

message.reply_to_message - уже сообщение.

Можно сразу получить тип чата этого сообщения и сделать проверку условием:

if message.reply_to_message.chat.type == 'channel':     #ваш код

if message.reply_to_message.chat.type == 'channel': #ваш код

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Никита Орлов Ответ

Для того чтобы получить сообщение, на которое ответил пользователь, можно воспользоваться следующим способом. Во-первых, необходимо убедиться, что у вас есть доступ к базе данных, где хранятся сообщения пользователей и ответы на них.

Далее, вам нужно определить уникальный идентификатор сообщения, на которое пользователь ответил. Этот идентификатор может быть, например, ID сообщения в базе данных или любой другой уникальный ключ.

Пример кода на PHP:

// Предположим, что у нас есть база данных $db
// И уникальный идентификатор сообщения, на которое пользователь ответил, равен $messageId
 
// Получаем сообщение, на которое ответил пользователь
$query = "SELECT * FROM messages WHERE id = $messageId";
$result = $db->query($query);
 
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $message = $row['message'];
        echo $message;
    }
} else {
    echo "Сообщение не найдено";
}

// Предположим, что у нас есть база данных $db // И уникальный идентификатор сообщения, на которое пользователь ответил, равен $messageId // Получаем сообщение, на которое ответил пользователь $query = "SELECT * FROM messages WHERE id = $messageId"; $result = $db->query($query); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $message = $row['message']; echo $message; } } else { echo "Сообщение не найдено"; }

В данном примере мы используем SQL запрос для выборки сообщения из базы данных по его уникальному идентификатору. Затем мы выводим это сообщение на экран.

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

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно