'how to login manually to telegram account with pyrogram without interactive console
I'm using python's pyrogram lib to login to multiple accounts I need to create a function just to send verification code to account and then read it from other user input ( not the default pyrogram login prompt )
when I use send_code it sends code and waits for user input from console and that what I don't want it to do I need simply a function that takes phone number as parameter and send confirmation code to it and a function then to login with that confirmation code ( got from user input somewhere else , eg: from telegram message to a linked bot or ....
Solution 1:[1]
I found a way to do it but with Telethon :
client = TelegramClient('sessionfile',api_id,api_hash)
def getcode():
code = ... # get the code from somewhere ( bot, file etc.. )
return code
client.start(phone=phone_number,password=password,code_callback=getcode)
this will login , gets confirmation code from specific function and then uses it to login , and store session file
Solution 2:[2]
Here's how you can achieve that with pyrogram:
from pyrogram import Client
async def main():
api_id = YOUR_API_ID
api_hash = "YOUR_API_HASH"
phone_number = "YOUR_PHONE_NUMBER"
client = Client(":memory:", api_id, api_hash)
await client.connect()
sent_code_info = await client.send_code(phone_number)
phone_code = input("Please enter your phone code: ") # Sent phone code using last function
await client.sign_in(phone_number, sent_code_info.phone_code_hash, phone_code)
For more info check the implementation of String Session Bot which implements Pyrogram as well as Telethon, particularly this function.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Khalil Abbas |
| Solution 2 | Stark Programmer |
