@Kiril-cloud

Как мне вызвать асинхронную функцию aiogram dp.register_message_handler(...)?

Есть aiogram bot н в нем есть функция для рассылки от клиента телеграм
async def send_message(url):	
	api_id = ххххххххххх
	api_hash = 'хххххххххххххххххххх'
	client = TelegramClient('TeleSender', api_id, api_hash)
	await client.start()
	channel = await client.get_entity(url)
	c = await client.get_participants(channel, limit=50000)	
	for user in c:
		 try:
		 	u = user.username
		 	await client.send_message(u, 'Тестовая рассылка.')
		 except Exception as e:
		 	print(e)

Как мне вызвать эту функцию через dp.register_message_handler()

Когда я вызываю её во так:
@dp.message_handler()
async def messages(message):
	if message.text == 'Заказать рассылку':
		await message.reply( 'Пришлите ссылку на канал или чат с целевой аудиторией для рассылки')
		dp.register_message_handler(message.text, send_message)

Выдает ошибку:
TypeError('unsupported callable') from ex TypeError: unsupported callable

Я пробовал добавлять await и перед dp.register_message_handler(...):
await dp.register_message_handler(message.text, send_message)

И внутри него когда обращаюсь к функции:
dp.register_message_handler(message.text, await send_message)

И даже вот так:
dp.register_message_handler(await send_message(message.text))

Все равно ошибка
  • Вопрос задан
  • 1094 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Junior-Padawan-Mikhalych
Бро, я сам только начал изучать, но вдруг помогу.

Я пишу без декоратора "@", тч мой код разбит на 2 части. Сначала идут функции, а в конце кода уже handlers:

async def question_one(message: types.Message):
    await message.reply("Хороший вопрос...")

dp.register_message_handler(question_one, lambda message: "Как дела?" in message.text)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы