در قسمت قبل یاد گرفتیم که چطور از تلگرام دسترسی بگیریم، حالا میخوایم از دسترسی که داریم استفاده کنیم و بتونیم به تلگرام با شماره خودمون لاگین بشیم و یک session فعال داخل حساب تلگراممون داشته باشیم.
بدلیل اینکه ما با لایبری Telethon پایتون کار میکنیم، اولین قدم نصب این لایبری روی سیستم است که برای انجامش هم میتونیم از طریق کد زیر داخل cmd به راحتی این لایبری رو نصب کنیم:
pip install Telethon
بعد از نصب کامل این لایبری، میریم سروقت کدنویسی اولین فایل بنام UserLogin.py، خب برای شروع ابتدا باید پکیجهای لازم رو import کنیم:
import telethon
from telethon.sync import TelegramClient
در این فایل telethon را جهت مدیریت خطا جهت اتصال به حساب و TelegramClient را جهت اتصال به حساب و استفاده از متدهای کلاس import کردیم، در مرحله بعد باید طبق مثال زیر یک نمونه از کلاس TelegramClient بسازیم:
client = TelegramClient('account', api_id, api_hash)
همانطور که مشاهده میکنی، پارامترهای ضروری که برای ساخت یک نمونه نیازه به ترتیب نامنشست که در اینجا account نامگذاری شده، api_id و api_hash هست که به جز نامنشست دوپارامتر دیگر واضح است که و مقادیر دریافت شده از تلگرام رو قرار بده.
اما نامنشست چیست؟ نامگذاری این پارامتر اختیاری است به عنوان مثال میتونی بهجای account نام دیگهای وارد کنی اما بریم سر این موضوع که این پارامتر دقیقا چه کاری رو انجام میده، در واقع با هر لاگین داخل حساب تلگرام یک فایل داخل دایرکتوری اجرای همین کد ایجاد میشه که با اجرای کدبالا این فایل account.session هستش و تنظیمات مربوط به حساب داخلش ذخیرست، سعی کنید به هیچ وجه این فایل رو در اختیار کسی قرار ندید چون پیامدهای بعدش قابل پیشبینی نیست.
بریم برای ادامه کار، خب الان باید به client متصل بشیم و شماره تلفن رو از کاربر بگیریم و درخواست کدتایید رو به سرور تلگرام بدیم تا برای اون شماره کدتایید ورود بفرسته.
client.connect()
phone = input("Insert Your Phone: ")
client.send_code_request(phone, force_sms=False)
همانطور که ملاحظه میکنی به client متصل شدیم و شماره تلفن گرفتیم و درخواست کدرو به تلگرام ارسال کردیم تا اگر force_sms=True بود به کاربر کد را در قالب sms بفرسته و اگر force_sms=False بود کد رو به دیوایسهای فعال تلگرامش بفرسته.
مرحله بعد باید کدی که تلگرام برای کاربر فرستاده رو بگیریم و وارد حسابش بشیم، اما یک نکته وجود داره اونم برای کاربرایی که ورود دو مرحلهای رو برای حسابشون فعال کردن که اگر مدیریت خطا انجام ندیم و رمز ورود دو مرحلهای رو ازش نگیریم، کد ما کرش میکنه و نمیتونیم به حسابش وارد بشیم، خب برای اینکه بتونیم با موفقیت وارد حسابش بشیم طبق کد زیر پیش میریم:
value = input("Insert Login Code: ")
try:
client.sign_in(phone, code=value)
except telethon.errors.SessionPasswordNeededError:
password = input("Insert Your 2-Step Code: ")
client.sign_in(password=password)
print("Successfully Connect!")
خب ما کد رو از کاربر گرفتیم و به تلگرام ارسال کردیم و در صورت داشتن ورود دومرحلهای، رمز رو از کاربر گرفتیم در نهایت اگر پیام Successfully Connect در خروجی چاپ شد یعنی تونستیم با موفقیت به اکانت متصل بشیم و طبق صحبتهای بالا حالا ما فایل یک نشستفعال با نام account.session رو در دایرکتوری همین کد داریم، یک نکته جالب هم میتونید انجام بدید اینه که میتونی چندین حساب فعال داشته باشی فقط کافیه اسم نشست رو تغییر بدی همین، کدهای بالارو بصورت کامل میتونی اینجا ببینی:
import telethon
from telethon.sync import TelegramClient
client = TelegramClient('account', c.api_id, c.api_hash)
client.connect()
phone = input("Insert Your Phone: ")
client.send_code_request(phone, force_sms=False)
value = input("Insert Login Code: ")
try:
client.sign_in(phone, code=value)
except telethon.errors.SessionPasswordNeededError:
password = input("Insert Your 2-Step Code: ")
client.sign_in(password=password)
print("Successfully Connect!")
خب اینم از متصل شدن به تلگرام، منتظر قسمتهای بعدی باش، داستان جالب میشه :)