Почему бот не пересылает сообщение в канал?
Помогите, пожалуйста, почему бот не пересылает сообщение в канал? Он должен после того, как пользователь ввел реквизиты, пересылать это сообщение:
# Обработка ввода суммы и реквизитов для вывода
@dp.message_handler(lambda message: message.text.startswith(('Qiwi', 'Pistrix', 'ЮMoney', 'FK Wallet')))
async def withdraw_info_handler(message: types.Message):
user_id = message.from_user.id
withdraw_info = message.text
# Получаем username пользователя
username = message.from_user.username
# ID канала, куда будем отправлять сообщение (замените на свой)
channel_id = '@vivoddeneg1232'
# Формируем сообщение для отправки в канал
forward_message = f"Сообщение от {username}:\n\n{withdraw_info}"
try:
# Отправляем сообщение в канал
await bot.send_message(chat_id=channel_id, text=forward_message)
# Отправляем пользователю подтверждение вывода
await bot.send_message(user_id, "Ваш запрос на вывод получен. Ожидайте обработки.")
except Exception as e:
# Обработка ошибок при отправке
await bot.send_message(user_id, f"Произошла ошибка при отправке сообщения в канал. {e}")
Ответы (1 шт):
Автор решения: Zailox
→ Ссылка
channel_ID должен быть в виде числа, для пользователей это обычно 1234567.., а для групп -1234567889...., channel_id вашего канала -1002144004014. Чтобы его узнать нужно использовать бота, например @FIND_MY_ID_BOT (НЕ РЕКЛАМА) и переслать в него сообщение.
Я протестировал твой код и написал id полученный в боте, всё работает, вот мой код:
import aiogram
from aiogram import types
from aiogram.utils import executor
import random
import asyncio
import random
TOKEN = '62675ххххх:AAEgXnukJfххххххххххххххххххххххххх'
bot = aiogram.Bot(token=TOKEN)
dp = aiogram.Dispatcher(bot)
# Обработка ввода суммы и реквизитов для вывода
@dp.message_handler(lambda message: message.text.startswith(('Qiwi', 'Pistrix', 'ЮMoney', 'FK Wallet')))
async def withdraw_info_handler(message: types.Message):
user_id = message.from_user.id
withdraw_info = message.text
# Получаем username пользователя
username = message.from_user.username
# ID канала, куда будем отправлять сообщение (замените на свой)
channel_id = '6444хххххх'
# Формируем сообщение для отправки в канал
forward_message = f"Сообщение от {username}:\n\n{withdraw_info}"
try:
# Отправляем сообщение в канал
await bot.send_message(chat_id=channel_id, text=forward_message)
# Отправляем пользователю подтверждение вывода
await bot.send_message(user_id, "Ваш запрос на вывод получен. Ожидайте обработки.")
except Exception as e:
# Обработка ошибок при отправке
await bot.send_message(user_id, f"Произошла ошибка при отправке сообщения в канал. {e}")
# Start bot
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Попробуй его, вставь в поле TOKEN токен бота и в поле channel_id id, полученный в мной указанном боте.