Auto Authorization

Manually writing phone number, phone code and password on the terminal every time you want to login can be tedious. Pyrogram is able to automate both Log In and Sign Up processes, all you need to do is pass the relevant parameters when creating a new Client.

Note

If you omit any of the optional parameter required for the authorization, Pyrogram will ask you to manually write it. For instance, if you don’t want to set a last_name when creating a new account you have to explicitly pass an empty string “”; the default value (None) will trigger the input() call.

Log In

To automate the Log In process, pass your phone_number and password (if you have one) in the Client parameters. If you want to retrieve the phone code programmatically, pass a callback function in the phone_code field — this function accepts a single positional argument (phone_number) and must return the correct phone code (e.g., “12345”) — otherwise, ignore this parameter, Pyrogram will ask you to input the phone code manually.

Example:

from pyrogram import Client

def phone_code_callback(phone_number):
    code = ...  # Get your code programmatically
    return code  # e.g., "12345"


app = Client(
    session_name="example",
    phone_number="39**********",
    phone_code=phone_code_callback,  # Note the missing parentheses
    password="password"  # (if you have one)
)

with app:
    print(app.get_me())

Sign Up

To automate the Sign Up process (i.e., automatically create a new Telegram account), simply fill both first_name and last_name fields alongside the other parameters; they will be used to automatically create a new Telegram account in case the phone number you passed is not registered yet.

Example:

from pyrogram import Client

def phone_code_callback(phone_number):
    code = ...  # Get your code programmatically
    return code  # e.g., "12345"


app = Client(
    session_name="example",
    phone_number="39**********",
    phone_code=phone_code_callback,  # Note the missing parentheses
    first_name="Pyrogram",
    last_name=""  # Can be an empty string
)

with app:
    print(app.get_me())