i use this script for connect and create sessions in telethon
from telethon import TelegramClient
from telethon.tl.functions.messages import GetHistoryReques
from telethon import TelegramClient
# These example values won't work. You must get your own api_id and
# api_hash from https://my.telegram.org, under API Development.
api_id = ****** # Your api_id
api_hash = '********************************' # Your api_hash
phone_number = '+989122594574' # Your phone number
client = TelegramClient(phone_number, api_id, api_hash)
client.connect()
if not client.is_user_authorized():
client.send_code_request(phone_number)
client.sign_in(phone_number, input('Enter the code: '))
client.send_message('amir2b', 'Hello! Amir Bashiri')
The problem is this line:
client = TelegramClient('+15xxxxxxxxx', api_id, api_hash)
You don't have to pass your phone number as a first parameter. You have to pass the name of the session, for instance, 'myname'.
You get this:
telethon.errors.RPCError: (RPCError(...), 'AUTH_KEY_UNREGISTERED (401): The key is not registered in the system.')
Because you've changed the name of the session (and now called it '00'), and you haven't logged it on that one. So in order to solve your problem simply:
client = TelegramClient('some_name', api_id, api_hash)
client.connect()
if not client.is_user_authorized():
client.send_code_request('+15xxxxxxxxx')
client.sign_in('+15xxxxxxxxx', cod)
And then remove the .send_code_request(...)
line:
client = TelegramClient('some_name', api_id, api_hash)
client.connect()
Notice that if you change 'some_name' for some .session
that doesn't exist yet, you will have to create it again. Also, you can rename the .session
file to any name you want, and use its name as a parameter (since it already exists).