Вызов inline бота через telethon
Всем привет, мучаюсь второй день с проблемой. Пытаюсь вызвать инлайн-бота в Telegram с помощью библиотеки Telethon в Python. Мне нужно, чтобы скрипт работал под учетной записью пользователя и отправлял сообщения, как если бы это делал реальный человек.
Проблема в том, что Telethon не позволяет идеально имитировать поведение пользователя при вызове инлайн-бота. Результаты запроса успешно приходят, но я не могу заставить Telegram отобразить их с пометкой "через @bot_username" сверху сообщения, как это происходит при обычном использовании инлайн-бота. Возможно кто то знает обход этого или какие то другие способы реализовать вызов inline бота?
Вот фрагмент моего кода:
try:
# Получаем результаты инлайн-запроса
results = await client(GetInlineBotResultsRequest(
bot=await client.get_entity(bot_username),
peer=await event.get_input_chat(),
query=symbol,
offset=''
))
if results.results:
# Отправляем первый результат
await client.send_message(
entity=event.chat_id,
message=results.results[0].id,
reply_to=event.id
)
print(f"Успешно отправлен инлайн-результат для {symbol}")
else:
print("Бот не вернул результатов")
except Exception as e:
print(f"Ошибка вызова бота: {str(e)[:100]}")
@client.on(events.NewMessage(incoming=True))
async def handler(event):
if event.out or not event.text:
return
# Проверка ключевых слов
if any(kw in event.raw_text.lower() for kw in keywords):
try:
# Искусственная задержка
await asyncio.sleep(1.5)
# Определяем криптовалюту
symbol = await detect_crypto(event.raw_text)
if not symbol:
return
# Вызываем инлайн-бота
await call_inline_bot(event, symbol)
except Exception as e:
print(f"Ошибка обработки: {e}")