ملف جلسة تيليجرام لـ Telethon مفتاح، لا تطبيق
ملف جلسة تيليجرام لـ Telethon هو مفتاح مصادقة (عادةً ملف .session بصيغة SQLite أو نص StringSession)، وليس نافذة تطبيق تيليجرام. يتيح لعميل Python الخاص بك التحدث بروتوكول MTProto بصفة مستخدم. إذا نقرت على الملف نقراً مزدوجاً وتوقعت قائمة محادثات، فقد طلبت الصيغة الخطأ. وإذا كنت تحتاج أن تعيد get_me() كائن مستخدم، فهذا هو المنتج.
هذا الدليل للمطوّرين والمشغّلين الذين يشغّلون Telethon أصلاً (أو سيشغّلونه)، ويريدون تسليم Session من مخزوننا الخاص، ويحتاجون خطة اختبار واضحة للتأكد من أن الجلسة حية، ومساراً واضحاً للاستبدال. الكتالوج هو حسابات تيليجرام. وللمصطلحات الأوسع حول الحسابات الجاهزة والجديدة والقديمة، اقرأ حسابات تيليجرام الجاهزة.
أهم النقاط
- جلسة Telethon ملف مفتاح مصادقة أو StringSession، لا نافذة تطبيق سطح مكتب.
- اختر Session (Telethon) في حسابات تيليجرام؛ المخزون نفسه، بتسليم مختلف.
- اختبار الحياة: اتصل باستخدام
api_id/api_hashالخاصين بك، ثم استدعِget_me().- غيّر 2FA بعد نجاح الاختبار؛ واعتبر كل نسخة إضافية من المفتاح ثغرة.
- المفاتيح الميتة (
AuthKeyUnregistered، رقم هاتف خاطئ) طريقها الاستبدال، لا تعديل SQLite.
ما هو ملف جلسة تيليجرام لـ Telethon بالضبط؟
جلسة Telethon هي مفتاح المصادقة الذي يستخدمه عميل Python للتحدث عبر MTProto بصفة مستخدم. ينشئها Telethon عندما تبني شيئاً مثل TelegramClient('anon') وتكمل تسجيل الدخول. بعد ذلك، يصبح الملف هو تسجيل الدخول.
داخل ملف .session النموذجي تجد قطعاً مملة لكنها حاسمة: أي مركز بيانات يجب الاتصال به، ومفتاح المصادقة الذي يشفّر الاتصال بحيث يعامل تيليجرام العملية على أنها ذلك المستخدم، وذاكرة تخزين مؤقت للكيانات التي رآها العميل. هذه الذاكرة قد تجعل الملف أكبر من "مفتاح صغير" دون أن تحوّله إلى تصدير محادثات قابل للقراءة. لا تفتح SQLite بحثاً عن الرسائل. الاختبار الحقيقي هو الاتصال.
StringSession هو المفتاح نفسه مُرمَّزاً كنص. مريح على الأجهزة التي ترمي نظام ملفاتها. وأسهل في التسريب. أي شخص يملك النص يستطيع الدخول بصفة ذلك المستخدم. احفظ النصوص في مخزن أسرار، لا في مستودع كود. وتسجيل دخول حي واحد قد يصبح مفتاحين عند التصدير؛ عُدّ النسخ.
توكن البوت شيء ثالث: سرّ HTTP لـ Bot API. ليس جلسة مستخدم. إذا كان اختبارك يحتاج مستخدماً يضغط Start، فأنت تريد جلسة مستخدم. وإذا كان اختبارك يحتاج أن يرد البوت، فأنت تريد التوكن.
كيف تشتري تسليم Session / Telethon على TgFather؟
على TgFather تختار تسليم Session (Telethon) من كتالوج الحسابات نفسه الذي نملكه والذي يضم TData. افتح حسابات تيليجرام، واختر Session، ثم الدولة وفئة العمر. التسليم فوري عند الخصم من المحفظة. والتنزيلات خلف روابط موقّعة تنتهي صلاحيتها.
أنت تشتري صيغة تسليم، لا نوعاً مختلفاً من الحسابات. اختر Session لأن كودك مكتوب بـ Telethon. واختر TData إذا كان إنسان سيجلس في Telegram Desktop، فهذا مجال حسابات تيليجرام tdata. واختر كود دخول حياً إذا أردت الكتابة في تطبيق تتحكم فيه. الصيغة الخطأ التي "تبدو جدية" تبقى خطأ بالنسبة لمقعدك.
إذا فشل get_me() على جلسة مُسلَّمة، فهذه حالة استبدال، لا نقاش حول بنية SQLite. شغّل اختبارك بنفسك قبل أن تبني مهام إنتاجية فوق المفتاح.
هل تختار Session قبل أن تختار الدولة؟
نعم: اكتب صيغة التسليم أولاً، ثم اختر الدولة وفئة العمر. افتح حسابات تيليجرام، واختر Session (Telethon)، ثم الدولة وفئة العمر، واحجز خانة تستطيع اختبارها في اليوم نفسه.
ما هو اختبار الحياة الذي يجب أن تشغّله؟
شغّل اتصالاً حقيقياً مع get_me() باستخدام api_id وapi_hash الخاصين بك قبل أن تثق بالملف. لا تثق بملف لأن امتداده .session. ولا تثق بنص لأنه طويل.
ما تريده:
- اتصال ناجح.
- كائن مستخدم يعود إليك.
- معرّف مستخدم ورقم هاتف يطابقان الحساب الذي ظننت أنك اشتريته.
اسم المستخدم الشكلي قد يتغير. أما المعرّف فلا. الاختلاف في المعرّف النصي سؤال للدعم. والاختلاف في رقم الهاتف يعني شخصاً آخر.
حالات الفشل:
- لا يمكن الاتصال: ليست جلسة حية.
- يتصل، ثم يطلب كلمة مرور سحابية لم تُعطَ لك: قفل ثانٍ مفقود.
AuthKeyUnregistered: المفتاح في الملف لم يعد مسجَّلاً. تذكار. اطلب الاستبدال؛ لا تعدّل SQLite يدوياً.
get_me() يثبت أن المفتاح ما زال يستطيع التحدث. لا يثبت "حياة حساب قديم". بعد النجاح، فعّل التحقق بخطوتين أو غيّره. كلمة المرور السحابية تقفل تسجيلات الدخول الجديدة؛ لكنها لا تكنس ملفات الجلسة التي غادرت أصلاً. إذا وصلت كلمة مرور سحابية مع الجلسة، فغيّرها. ولا تعِد استخدام كلمة مرور حسابك الشخصي في تيليجرام.
Telethon مقابل StringSession مقابل TData مقابل توكن البوت
ملفات جلسة Telethon وStringSession مفاتيح مستخدم؛ وTData لسطح المكتب؛ وتوكن البوت لـ Bot API. طابق الصيغة مع المقعد قبل أن تدفع.
Telethon .session |
StringSession | TData | توكن البوت | |
|---|---|---|---|---|
| ما هو | ملف SQLite فيه مفتاح المصادقة + ذاكرة مؤقتة | المفتاح نفسه كنص | مجلد عمل Telegram Desktop | سرّ HTTP لبوت |
| ما الذي يفتحه | Telethon | Telethon | Telegram Desktop | Bot API / أي عميل HTTP |
| هل يبدو كتطبيق؟ | لا | لا | نعم، على سطح المكتب | لا |
| اختبار الحياة | اتصال + get_me() |
اتصال + get_me() |
الإعدادات تُظهر الرقم | getMe على Bot API |
| تعامل معه كـ | كلمة مرور | كلمة مرور سهلة اللصق | كلمة مرور داخل مجلد | كلمة مرور |
Telethon وPyrogram يتحدثان كلاهما MTProto ويكتبان كلاهما "جلسات". لكن ملفاتهما غير قابلة للتبادل. لا تعطِ ملف .session الخاص بـ Telethon لعميل Pyrogram. ولا تلصق نص Pyrogram في StringSession. إذا كان مشروعك بـ Pyrogram، فاشترِ أو أنشئ جلسة Pyrogram. صفحات العرض التي تقول "session" فقط دون تسمية المكتبة تضيّع عليك فترة العصر كلها.
كيف تخزّن المفتاح وتستخدمه بأمان؟
خزّن ملف الجلسة أو النص كأنه كلمة مرور: بلا لصق، بلا commit، وبلا نسخ عابرة. أي شخص يملك المفتاح مسجّل الدخول بصفة ذلك المستخدم من أي مكان يشغّل فيه العميل.
قواعد عملية:
- لا تلصقه في قروب "فقط للتجربة".
- لا تضعه في commit.
- جهازان بنسختين يعني مفتاحين.
- إذا ألغيت الصف الخطأ في قائمة أجهزة تيليجرام، فسيفشل
get_me()التالي بخطأAuthKeyUnregistered. - بعد أول
get_me()ناجح، توقف عن العبث. ضع الملف حيث تستطيع العملية قراءته. واعتبر كل نسخة إضافية ثغرة.
الاستخدامات المشروعة: بيئة اختبار تحتاج مستخدماً حقيقياً يحادث بوتاً، سكربت دعم يسحب محادثة طلبها إنسان، صندوق رسائل تجريبي لـ Mini App. والإيصال لا يشتري إعفاءً من إرسال رسائل جماعية غير مرغوب فيها.
تحتاج بدلاً من ذلك مقعد سطح مكتب يجلس فيه إنسان؟ قارن الصيغ في حسابات تيليجرام الجاهزة. تحتاج معرّف بوت بدلاً من مفتاح مستخدم؟ راجع بوتات تيليجرام القديمة.
أين تشتري، وما الذي يغطيه الاستبدال؟
اشترِ تسليم Session من حسابات TgFather؛ والاستبدال يغطي المفاتيح الميتة، لا أخطاء تخزين الأسرار. ابدأ من حسابات تيليجرام: اختر Session (Telethon) والدولة وفئة العمر. ادفع من المحفظة. نزّل من الرابط الموقّع. شغّل get_me(). غيّر كلمة المرور السحابية. ولا تبنِ إلا بعد أن يثبت المفتاح أنه حي.
المفتاح الميت (AuthKeyUnregistered، رقم هاتف خاطئ، 2FA وُعدت به ولم يصل) طريقه الاستبدال من مخزوننا، لا حجة بأن "الجلسات هكذا". احتفظ بـ api_id / api_hash الخاصين بك وبمخزن أسرارك الخاص. الكتالوج يسلّم الصيغة؛ وعمليتك تملك النظافة بعد التسليم.
ملف جلسة تيليجرام هو ذلك المفتاح. وTelethon هي مكتبة Python التي تطرح السؤال على تيليجرام. إذا بحثت عن telethon session أو عن شراء حساب تيليجرام بتسليم Telethon، فأنت ما زلت تشتري ملفاً (أو نصاً)، لا نافذة تطبيق.
عندما تكون جاهزاً: اشترِ حسابات تيليجرام بتسليم Session.
أسئلة شائعة
هل أستطيع تحويل ملف .session الخاص بـ Telethon إلى نص جلسة Pyrogram؟
لا يوجد مسار مدعوم يحوّل ملف جلسة Telethon إلى نص جلسة Pyrogram. إذا كان كودك بـ Pyrogram، فاحصل على جلسة Pyrogram بدلاً من ذلك.
إذا ألغيت الجلسات الأخرى من الإعدادات، هل يموت ملف .session الخاص بي؟
يموت فقط إذا ألغيت صف تلك الجلسة بالذات في الإعدادات. قائمة الأجهزة قائمة مفاتيح؛ اضغط على الخطأ وسيفشل get_me() التالي.
ماذا يعني AuthKeyUnregistered؟
AuthKeyUnregistered يعني أن مفتاح المصادقة في ملفك لم يعد مسجَّلاً. استبدله؛ ولا تعدّل SQLite يدوياً.
حجم الملف نحو 40KB. هل حصلت على تفريغ للمحادثات؟
غالباً لا: Telethon يخزّن الكيانات مؤقتاً، لذلك الملف الأكبر يبقى بيانات وصفية للمكتبة. ليس أرشيف محادثات تستطيع تصفحه يدوياً.
هل أستطيع إبقاء الجلسة نفسها على خادمين؟
تستطيع نسخ الملف، لكن العمليتين ستتشاركان حينها مفتاحاً واحداً. فضّل تسجيلي دخول مقصودين إذا كنت تحتاج مكانين يجب ألا يدوس أحدهما على الآخر.
هل Session مخزون مختلف عن TData على TgFather؟
لا: Session وTData هما الحسابات نفسها بصيغ تسليم مختلفة. اختر Session عند الدفع لـ Telethon؛ واختر TData لسطح المكتب.