Как отправить определенное сообщение из телеграм бота в телеграм канал
import telebot
from telebot import types
bot = telebot.TeleBot('Token')
user_dict = {}
class User:
def __init__(self, name):
self.name = name
self.age = None
self.sex = None
@bot.message_handler(commands=['start'])
def start_command(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
item1 = types.KeyboardButton('?Ассортимент?')
item2 = types.KeyboardButton('?Информация?')
item3 = types.KeyboardButton('?Оставить заявку на покупку?')
markup.add(item1, item2, item3)
bot.send_message(message.chat.id, 'Привет,{0.first_name}!'.format(message.from_user), reply_markup=markup)
@bot.message_handler(content_types={'text'})
def bot_message(message):
if message.chat.type == 'private':
if message.text == '?Оставить заявку на покупку?':
msg = bot.reply_to(message, 'Как вас зовут:')
bot.register_next_step_handler(msg, process_name_step)
def process_name_step(message):
chat_id = message.chat.id
name = message.text
user = User(name)
user_dict[chat_id] = user
msg = bot.reply_to(message, 'Какой товар вас интересует:')
bot.register_next_step_handler(msg, process_age_step)
def process_age_step(message):
chat_id = message.chat.id
age = message.text
user = user_dict[chat_id]
user.age = age
msg = bot.reply_to(message, 'Метро где вы проживаете:')
bot.register_next_step_handler(msg, process_sex_step)
def process_sex_step(message):
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
item1 = types.KeyboardButton('Принять✅')
chat_id = message.chat.id
sex = message.text
user = user_dict[chat_id]
user.sex = sex
markup.add(item1)
bot.send_message(message.chat.id,
'Ваша заявка скоро будет рассмотренна ''\n ___________________________''\n Ваше имя:' + user.name + '\n Товар:' + str(
user.age) + '\n Метро:' + user.sex, reply_markup=markup)
bot.polling(none_stop=True)
**
Здаача заключается в чем,
- Юзер отвечает на вопросы которые задает ему бот
- Складывается целое сообщение
- Отправляется в телеграм канал
Не получается решить проеблему с отправкой сообщения в тг канал(3 пункт), все что я пробовал писать не работает, подскажите как можно это написать **
Все это пишу в целях собственного развития
Ответы (1 шт):
Автор решения: MyZik
→ Ссылка
В message.text находится текст сообщения, которое отправил пользователь, а не бот.
Для пересылки сообщения есть метод forwardMessage.
Если Вам известен ID канала, куда должно пересылаться сообщение, то просто делайте это в самом последнем хэндлере, когда пользователь заполнил все данные:
...
def process_sex_step(message):
...
bot.send_message(message.chat.id,
'Ваша заявка скоро будет рассмотренна ''\n ___________________________''\n Ваше имя:' + user.name + '\n Товар:' + str(
user.age) + '\n Метро:' + user.sex, reply_markup=markup)
channel_id = -1234567890 # Здесь укажите ID Вашего канала
bot.forward_message(chat_id=channel_id, from_chat_id=message.chat.id, message_id=message.message_id)