Как правильно сделать пересылку постов из телеграм канала в диалог с пользователем по нажатию кнопки, с помощью Python telebot?
Бот должен по нажатию на определённую кнопку присылать посты из ТГК в диалог с пользователем, и использовать эту кнопку можно будет пока не закончатся посты. Я видел что для решения моей проблемы есть решение в библиотеке aiogram, но Я уже написал 90% кода на telebot поэтому мне нужен код именно на telebot. Также Я бы хотел обойтись без БД. По сути мне нужно переделать код из aiogram в telebot.
Вот тот самый код на aiogram:
@dp.message_handler(sand_message, content_types=["text"])
async def sand_message(message: types.Message):
bot_chat_id = # id чата с ботом
group_id = # id группы откуда надо пересылать новые сообщения
if message.chat.id != bot_chat_id:
await bot.forward_message(bot_chat_id, group_id, message.message_id)
Ответы (1 шт):
Автор решения: Рустам Рысаев
→ Ссылка
Пример кода на telebot
import telebot
from telebot import types
# Инициализация бота
TOKEN = "YOUR_BOT_TOKEN"
bot = telebot.TeleBot(TOKEN)
# Идентификаторы
bot_chat_id = YOUR_BOT_CHAT_ID # ID чата с ботом (личный чат)
group_id = YOUR_GROUP_ID # ID группы, откуда надо пересылать сообщения
# Список для хранения сообщений (будет использоваться для кнопок)
message_queue = []
# Функция для отправки постов
def get_next_post():
if message_queue:
return message_queue.pop(0)
else:
return None
# Обработчик команды /start
@bot.message_handler(commands=["start"])
def send_welcome(message):
markup = types.ReplyKeyboardMarkup(row_width=1)
button = types.Button("Получить следующий пост")
markup.add(button)
bot.send_message(message.chat.id, "Привет! Нажми кнопку, чтобы получить следующий пост.", reply_markup=markup)
# Обработчик нажатия на кнопку
@bot.message_handler(func=lambda message: message.text == "Получить следующий пост")
def send_next_post(message):
post = get_next_post()
if post:
bot.send_message(message.chat.id, post) # Отправляем сообщение
else:
bot.send_message(message.chat.id, "Посты закончились!")
# Обработчик для пересылки сообщений из группы в чат
@bot.message_handler(content_types=["text"])
def forward_message_to_user(message):
if message.chat.id == group_id: # Проверяем, что сообщение пришло из нужной группы
# Добавляем сообщение в очередь для дальнейшей пересылки
message_queue.append(message.text)
# Запуск бота
bot.polling(none_stop=True)