سشن تلگرام برای تلتون یک کلید است، نه یک اپلیکیشن
سشن تلتون تلگرام یک کلید احراز هویت است (معمولاً یک فایل .session از نوع SQLite یا یک رشته StringSession)، نه یک پنجره اپلیکیشن تلگرام. این کلید به کلاینت پایتون شما اجازه میدهد تا به عنوان یک کاربر با پروتکل MTProto صحبت کند. اگر روی فایل دوبار کلیک کرده و انتظار لیست چت را دارید، فرمت اشتباهی را سفارش دادهاید. اما اگر نیاز دارید که get_me() یک آبجکت کاربر را برگرداند، این همان محصول مورد نظر شماست.
این راهنما برای توسعهدهندگان و اپراتورهایی است که در حال حاضر از تلتون استفاده میکنند (یا قصد استفاده دارند)، خواهان تحویل سشن از موجودی خریداری شده هستند و به یک تست زنده و شفاف به همراه مسیر جایگزینی نیاز دارند. کاتالوگ مربوطه در اکانتهای تلگرام موجود است. برای درک بهتر اصطلاحات اکانت آماده، تازه یا قدیمی، مقاله اکانتهای آماده تلگرام را مطالعه کنید.
نکات کلیدی
- سشن تلتون یک فایل کلید احراز هویت یا StringSession است، نه یک پنجره اپلیکیشن دسکتاپ.
- در صفحه اکانتهای تلگرام، گزینه Session (Telethon) را انتخاب کنید؛ موجودی یکسان است، فقط نحوه تحویل متفاوت است.
- تست زنده: با
api_id/api_hashخود متصل شوید، سپسget_me()را فراخوانی کنید.- پس از دریافت، تایید دو مرحلهای (2FA) را تغییر دهید؛ هر کپی اضافی از کلید را یک حفره امنیتی در نظر بگیرید.
- کلیدهای از کار افتاده (
AuthKeyUnregistered، شماره تلفن اشتباه) شامل گارانتی تعویض میشوند، نه اینکه خودتان فایل SQLite را ویرایش کنید.
سشن تلتون دقیقاً چیست؟
سشن تلتون کلید احراز هویتی است که کلاینت پایتون شما برای صحبت با پروتکل MTProto به عنوان یک کاربر استفاده میکند. تلتون این فایل را زمانی ایجاد میکند که شما چیزی شبیه TelegramClient('anon') را میسازید و فرآیند ورود را تکمیل میکنید. پس از آن، خود فایل به منزله لاگین است.
درون یک فایل .session معمولی، قطعات حیاتی اما نه چندان هیجانانگیزی وجود دارد: با کدام دیتاسنتر تماس گرفته شود، کلید احراز هویتی که ترافیک را رمزنگاری میکند تا تلگرام این فرآیند را به عنوان آن کاربر بشناسد، و یک کش از موجودیتهایی که کلاینت دیده است. این کش میتواند حجم فایل را بیشتر از «یک کلید کوچک» کند بدون اینکه آن را به یک خروجی قابل خواندن از چتها تبدیل کند. برای پیدا کردن پیامها، فایل SQLite را باز نکنید. تست زنده، برقراری یک اتصال است.
StringSession همان کلید است که به صورت متن کدگذاری شده. این فرمت برای محیطهایی که فایل سیستم آنها موقتی است، راحتتر است. اما لو رفتن آن نیز آسانتر است. هر کسی که این رشته را داشته باشد میتواند به عنوان آن کاربر وارد شود. رشتهها را در یک مخزن امن (secret store) نگه دارید، نه در ریپازیتوری کد. یک لاگین زنده میتواند هنگام خروجی گرفتن به دو کلید تبدیل شود؛ تعداد کپیها را بشمارید.
توکن ربات یک موجودیت سوم است: یک کلید محرمانه HTTP برای Bot API. این یک سشن کاربر نیست. اگر تست شما نیاز دارد که یک کاربر دکمه Start را فشار دهد، شما به یک سشن کاربر نیاز دارید. اگر تست شما نیاز دارد که ربات پاسخ دهد، شما به توکن نیاز دارید.
چگونه تحویل سشن / تلتون را در TgFather خریداری میکنید؟
در TgFather شما تحویل Session (Telethon) را از همان کاتالوگ اکانتهای خریداری شدهای انتخاب میکنید که برای TData استفاده میشود. صفحه اکانتهای تلگرام را باز کنید، Session را انتخاب کنید، سپس کشور و بازه سنی را مشخص کنید. تحویل پس از کسر هزینه از کیف پول، آنی است. دانلودها از طریق لینکهای امضا شده و زماندار انجام میشود.
شما در حال خرید یک فرمت تحویل هستید، نه یک نوع متفاوت از اکانت. اگر کد شما با تلتون نوشته شده، Session را انتخاب کنید. اگر یک انسان پشت تلگرام دسکتاپ مینشیند، TData را انتخاب کنید. اگر میخواهید کد ورود را در کلاینتی که کنترلش دست خودتان است وارد کنید، یک کد ورود زنده (live login code) را انتخاب کنید. انتخاب فرمت اشتباهی که «جدی به نظر میرسد» همچنان برای کار شما اشتباه است.
اگر get_me() روی یک سشن تحویل داده شده با خطا مواجه شود، این یک مورد برای جایگزینی است، نه بحثی در مورد ساختار SQLite. قبل از اینکه کارهای اصلی خود را بر پایه این کلید بسازید، تست خود را اجرا کنید.
آیا باید قبل از انتخاب کشور، سشن را انتخاب کنید؟
بله: ابتدا فرمت تحویل را مشخص کنید، سپس کشور و بازه سنی را انتخاب کنید. صفحه اکانتهای تلگرام را باز کنید، Session (Telethon) را انتخاب کنید، کشور و بازه سنی را مشخص کنید و یک اسلات رزرو کنید که بتوانید همان روز آن را تست کنید.
چه تست زندهای باید اجرا کنید؟
قبل از اعتماد به فایل، یک اتصال واقعی به همراه get_me() را با api_id و api_hash خودتان اجرا کنید. به یک فایل فقط به خاطر پسوند .session آن اعتماد نکنید. به یک رشته فقط به خاطر طولانی بودنش اعتماد نکنید.
آنچه شما میخواهید:
- یک اتصال موفق.
- دریافت یک آبجکت کاربر.
- مطابقت شناسه کاربری و شماره تلفن با اکانتی که فکر میکردید خریدهاید.
نام کاربری (vanity username) میتواند تغییر کند. شناسه کاربری (id) تغییر نمیکند. عدم تطابق یوزرنیم یک سوال پشتیبانی است. عدم تطابق شماره تلفن یعنی با یک شخص دیگر طرف هستید.
حالات شکست:
- عدم امکان اتصال: سشن زنده نیست.
- متصل میشود، سپس رمز عبور ابری (cloud password) را میخواهد که به شما داده نشده: قفل دوم وجود ندارد.
AuthKeyUnregistered: کلید موجود در فایل دیگر ثبت شده نیست. یک یادگاری است. درخواست جایگزینی کنید؛ فایل SQLite را دستی ویرایش نکنید.
get_me() ثابت میکند که کلید هنوز میتواند صحبت کند. این «سبک زندگی قدیمی» بودن اکانت را ثابت نمیکند. پس از موفقیت، تایید دو مرحلهای را تنظیم یا تغییر دهید. رمز عبور ابری، لاگینهای جدید را قفل میکند؛ فایلهای سشنی را که قبلاً خارج شدهاند، پاک نمیکند. اگر رمز عبور ابری همراه سشن ارائه شد، آن را تغییر دهید. از رمز عبور تلگرام شخصی خود مجدداً استفاده نکنید.
مقایسه تلتون، StringSession، TData و توکن ربات
فایلهای سشن تلتون و StringSession کلیدهای کاربر هستند؛ TData برای دسکتاپ است؛ توکن ربات برای Bot API است. قبل از پرداخت، فرمت را با نیاز خود مطابقت دهید.
سشن .session تلتون |
StringSession | TData | توکن ربات | |
|---|---|---|---|---|
| چیست | فایل SQLite با کلید احراز هویت + کش | همان کلید به صورت متنی | دایرکتوری کاری تلگرام دسکتاپ | کلید محرمانه HTTP برای یک ربات |
| چه چیزی آن را باز میکند | تلتون | تلتون | تلگرام دسکتاپ | Bot API / هر کلاینت HTTP |
| شبیه اپلیکیشن است؟ | خیر | خیر | بله، روی دسکتاپ | خیر |
| تست زنده | اتصال + get_me() |
اتصال + get_me() |
تنظیمات شماره را نشان میدهد | getMe در Bot API |
| با آن چگونه رفتار کنیم | مانند یک رمز عبور | مانند یک رمز عبور که به راحتی پیست میشود | مانند یک رمز عبور در یک پوشه | مانند یک رمز عبور |
تلتون و پایروگرام (Pyrogram) هر دو با MTProto صحبت میکنند و هر دو «سشن» مینویسند. اما فایلهای آنها قابل تعویض نیستند. یک فایل .session تلتون را به کلاینت پایروگرام ندهید. یک رشته پایروگرام را در StringSession تلتون پیست نکنید. اگر پروژه شما با پایروگرام است، یک سشن پایروگرام بخرید یا تولید کنید. لیستهایی که فقط میگویند «سشن» بدون نام بردن کتابخانه، بعد از ظهر شما را تلف میکنند.
چگونه باید کلید را به صورت امن ذخیره و استفاده کنید؟
فایل سشن یا رشته را مانند یک رمز عبور ذخیره کنید: بدون پیست کردن، بدون کامیت کردن در گیت، و بدون کپیهای بیمورد. هر کسی که کلید را داشته باشد، از هر جایی که کلاینت را اجرا کند، به عنوان آن کاربر وارد شده است.
قوانین عملی:
- آن را «فقط برای چک کردن» در یک گروه پیست نکنید.
- آن را در گیت کامیت نکنید.
- دو ماشین با دو کپی یعنی دو کلید.
- اگر ردیف اشتباهی را در لیست دستگاههای تلگرام باطل کنید،
get_me()بعدی با خطایAuthKeyUnregisteredشکست میخورد. - پس از اولین
get_me()موفق، دیگر دستکاری نکنید. فایل را جایی قرار دهید که فرآیند بتواند آن را بخواند. هر کپی اضافی را یک حفره امنیتی در نظر بگیرید.
کاربردهای مشروع: یک محیط تست که به یک کاربر واقعی برای صحبت با ربات نیاز دارد، یک اسکریپت پشتیبانی که چت درخواستی یک انسان را میگیرد، یک اینباکس موقت برای یک Mini App. یک رسید خرید، مجوزی برای ارسال پیامهای انبوه ناخواسته نیست.
به جای آن به یک صندلی دسکتاپ برای انسان نیاز دارید؟ فرمتها را در اکانتهای آماده تلگرام مقایسه کنید. به جای کلید کاربر به یک هندل ربات نیاز دارید؟ رباتهای قدیمی تلگرام را ببینید.
از کجا بخرید و گارانتی تعویض شامل چه مواردی میشود؟
تحویل سشن را از اکانتهای TgFather بخرید؛ گارانتی تعویض، کلیدهای از کار افتاده را پوشش میدهد، نه اشتباهات در ذخیرهسازی کلیدهای محرمانه را. از اکانتهای تلگرام شروع کنید: Session (Telethon)، کشور و بازه سنی را انتخاب کنید. از کیف پول پرداخت کنید. از لینک امضا شده دانلود کنید. get_me() را اجرا کنید. رمز عبور ابری را تغییر دهید. تنها پس از اثبات زنده بودن کلید، شروع به ساختن پروژه خود کنید.
یک کلید از کار افتاده (AuthKeyUnregistered، شماره تلفن اشتباه، نبود 2FA که به شما قول داده شده بود) در موجودی خریداری شده شامل گارانتی تعویض میشود، نه اینکه استدلال کنید «سشنها همینطور هستند». api_id / api_hash و روش ذخیرهسازی امن خود را داشته باشید. کاتالوگ، فرمت را تحویل میدهد؛ فرآیند شما مسئول بهداشت و امنیت پس از تحویل است.
یک سشن تلگرام همان کلید احراز هویت است. تلتون کتابخانه پایتونی است که از تلگرام سوال میپرسد. اگر برای تحویل تلتون جستجو کردهاید، شما همچنان یک فایل (یا رشته) خریدهاید، نه یک پنجره اپلیکیشن.
وقتی آماده بودید: اکانتهای تلگرام با تحویل سشن بخرید.
سوالات متداول
StringSession در تلتون چیست؟
یک StringSession کلید احراز هویت شماست که به صورت یک خط متن کدگذاری شده، به جای اینکه در یک فایل .session ذخیره شود. این رشته حاوی همان اطلاعات حیاتی مانند دیتاسنتر و کلید احراز هویت است. این فرمت برای محیطهایی که فایل سیستم موقتی دارند، راحت است. با این حال، چون فقط یک متن است، ممکن است راحتتر به طور تصادفی لو برود. شما باید یک StringSession را در یک مدیر اسرار (secret manager) ذخیره کنید، نه مستقیماً در ریپازیتوری کد خود.
آیا میتوانم تاریخچه چت را از فایل .session بخوانم؟
خیر، شما نمیتوانید تاریخچه چت خود را مستقیماً از فایل .session بخوانید. این فایل یک پایگاه داده SQLite است که حاوی کلید احراز هویت شما و یک کش از موجودیتهایی است که کلاینت شما دیده است، نه یک خروجی از پیامها. اگر نیاز به دسترسی به پیامها دارید، باید از سشن با یک کلاینت زنده تلتون برای اتصال به سرورهای تلگرام و بازیابی آنها استفاده کنید. سعی نکنید فایل را برای جستجوی پیامها باز کنید.
آیا برای یک سشن خریداری شده به api_id خودم نیاز دارم؟
بله، شما باید هنگام اتصال با یک سشن تلتون خریداری شده، از api_id و api_hash خودتان استفاده کنید. خود فایل سشن فقط کلید احراز هویت کاربر است، در حالی که اعتبارنامههای API، اپلیکیشن خاص شما را برای تلگرام شناسایی میکند. تست زنده برای تأیید یک سشن جدید، نیازمند اتصال با استفاده از جزئیات API خودتان است. این ثابت میکند که کلید میتواند از طریق نمونه اپلیکیشن شما به نمایندگی از کاربر صحبت کند.
آیا باید رمز عبور ابری (تایید دو مرحلهای) را در یک سشن جدید تغییر دهم؟
بله، شما باید بلافاصله پس از تأیید کارکرد سشن، رمز عبور تأیید دو مرحلهای، که به عنوان رمز عبور ابری نیز شناخته میشود، را تغییر دهید. رمز عبور ابری تلاشهای جدید برای ورود را قفل میکند و یک لایه امنیتی اضافه میکند. اگر رمزی با سشن ارائه شده است، آن را به رمزی که فقط خودتان میدانید تغییر دهید. این کار به ایمنسازی اکانت در برابر هر کس دیگری که ممکن است به اعتبارنامههای اصلی یا فایل سشن دسترسی داشته باشد، کمک میکند.