mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-01-24 16:24:15 +03:00
More enhancements on .sign_in from different clients (#278)
This commit is contained in:
parent
1d250a5441
commit
9445d2ba53
|
@ -131,13 +131,22 @@ class TelegramClient(TelegramBareClient):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def sign_in(self, phone=None, code=None,
|
def sign_in(self, phone=None, code=None,
|
||||||
password=None, bot_token=None):
|
password=None, bot_token=None, phone_code_hash=None):
|
||||||
"""Completes the sign in process with the phone number + code pair.
|
"""Completes the sign in process with the phone number + code pair.
|
||||||
|
|
||||||
If no phone or code is provided, then the sole password will be used.
|
If no phone or code is provided, then the sole password will be used.
|
||||||
The password should be used after a normal authorization attempt
|
The password should be used after a normal authorization attempt
|
||||||
has happened and an SessionPasswordNeededError was raised.
|
has happened and an SessionPasswordNeededError was raised.
|
||||||
|
|
||||||
|
If you're calling .sign_in() on two completely different clients
|
||||||
|
(for example, through an API that creates a new client per phone),
|
||||||
|
you must first call .sign_in(phone) to receive the code, and then
|
||||||
|
with the result such method results, call
|
||||||
|
.sign_in(phone, code, phone_code_hash=result.phone_code_hash).
|
||||||
|
|
||||||
|
If this is done on the same client, the client will fill said values
|
||||||
|
for you.
|
||||||
|
|
||||||
To login as a bot, only `bot_token` should be provided.
|
To login as a bot, only `bot_token` should be provided.
|
||||||
This should equal to the bot access hash provided by
|
This should equal to the bot access hash provided by
|
||||||
https://t.me/BotFather during your bot creation.
|
https://t.me/BotFather during your bot creation.
|
||||||
|
@ -148,18 +157,20 @@ class TelegramClient(TelegramBareClient):
|
||||||
if phone and not code:
|
if phone and not code:
|
||||||
return self.send_code_request(phone)
|
return self.send_code_request(phone)
|
||||||
elif code:
|
elif code:
|
||||||
if not self._phone:
|
phone = phone or self._phone
|
||||||
self._phone = phone
|
phone_code_hash = phone_code_hash or self._phone_code_hash
|
||||||
if not self._phone:
|
if not phone:
|
||||||
raise ValueError(
|
raise ValueError(
|
||||||
'Please make sure to call send_code_request first.'
|
'Please make sure to call send_code_request first.'
|
||||||
)
|
)
|
||||||
|
if not phone_code_hash:
|
||||||
|
raise ValueError('You also need to provide a phone_code_hash.')
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if isinstance(code, int):
|
if isinstance(code, int):
|
||||||
code = str(code)
|
code = str(code)
|
||||||
result = self(SignInRequest(
|
result = self(SignInRequest(
|
||||||
self._phone, self._phone_code_hash, code
|
phone, phone_code_hash, code
|
||||||
))
|
))
|
||||||
|
|
||||||
except (PhoneCodeEmptyError, PhoneCodeExpiredError,
|
except (PhoneCodeEmptyError, PhoneCodeExpiredError,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user