Этот вопрос закрыт для ответов, так как повторяет вопрос Как обойти первоначальную авторизацию через терминал при создании TelegramClienta (telethon)?
S0nder88
@S0nder88
Мойте тарелку после гречки сразу!

Кто знает как обойти авторизацию через терминал telethon?

В чем вся проблемка, я хочу обойти авторизацию в терминале при создании TelegramClienta, пробую, что бы ввод кода выполнялся через телеграмм бота.

Вот мой код обработчика состояния:

@dp.message_handler(state=AccountManagementStateFSM.auth_account_code)
async def process_auth_code(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['auth_code'] = message.text

        # Помещаем код авторизации в асинхронную очередь
        await shared.auth_code_queue.put(data['auth_code'])
        print(f"Код добавлен в auth_code_queue: {data['auth_code']}")

        await state.finish()
        await message.answer('Спасибо! Код авторизации получен.')


Далее, код я передаю в асинхронную очередь и получаю этот код в файле shared:

import asyncio


auth_code_queue = asyncio.Queue()

async def code_callback():
    code = await auth_code_queue.get()
    print(f"Received auth code in code_callback: {code}")
    return code


И затем хочу использовать в своем основном скрипте, а именно передавая функцию напрямую в которой я возвращаю код:

client_obj = TelegramClient(phone_number, api_id, api_hash)

            await client_obj.start(phone=phone_number, code_callback=lambda: code_callback())


Но в чем суть проблемки, код видимо не доходит до моей конечной станции, потому-что я пробовал делать отладки и если на первом этапе код передается в асинхронную очередь, то дальше ничего не происходит и тем самым он не подставляется для авторизации, в чем может быть проблема или же кто-то знает как иначе обойти эту авторизацию, что бы не вводить код вручную в терминале?
  • Вопрос задан
  • 124 просмотра
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы