Telethon 无法通过两步验证登录帐户

Man*_*ala 3 python telegram telegram-bot telethon

我正在尝试使用 telethon 登录电报,并使用带有两步验证的号码。我使用这段代码,

client = TelegramClient(f'sessions/1', API_ID, API_HASH)
client.connect()
phone = input('phone ; ')
y = client.send_code_request(phone)
x = client.sign_in(phone=phone, password=input('password : '), code=input('code :'))
Run Code Online (Sandbox Code Playgroud)

但它仍然说该帐户受到两步保护。如果没有这种方法,有没有更简单的方法可以做到这一点,或者...我如何正确使用这种方法?

我想从代码完全登录帐户,而不在终端中输入任何内容(这里我使用输入只是为了测试。稍后我将连接一个 GUI,用户可以在其中输入详细信息),所以我认为不会起作用client.start()。当涉及到将参数传递给方法时我有点困惑client.start()

任何帮助将非常感激。谢谢。

Pra*_*gar 6

这就是我在代码中实现它的方式,使用client.start().

phone = input("Enter phone: ")
await client.send_code_request(phone, force_sms=False)
value = input("Enter login code: ")
try:
    me = await client.sign_in(phone, code=value)
except telethon.errors.SessionPasswordNeededError:
    password = input("Enter password: ")
    me = await client.sign_in(password=password)
Run Code Online (Sandbox Code Playgroud)