جديد 📢 عرض الإطلاق لفترة محدودة: خصم حتى 70% على شهرك الأول في كل لعبة.عرض الباقات

كيف تستضيف بوت Telegram

استضافة بوتات DiscordUpdated Oct 29, 20268 min read

لاستضافة بوت Telegram على مدار الساعة، شغّله على سيرفر يبقى يعمل بدل حاسوبك: أنشئ البوت عبر @BotFather، واطلب باقة بوت لـ Telegram، والصق الرمز في صفحة البوت، ثم شغّل كودك. في باقة بوت PlayNHost (من US$1.99 شهريًا) تتحقق اللوحة من الرمز لدى Telegram، وتعطي كودك الرمز بالأسماء التي تستخدمها معظم المكتبات، وتقدّم بوتًا تجريبيًا جاهزًا بلغة Python أو Node.js إن لم يكن لديك كود بعد. الخطوات:

  1. في Telegram افتح @BotFather، وأرسل /newbot، واختر اسمًا ومعرّفًا ينتهي بـ bot، ثم انسخ الرمز الذي يعطيك إياه.
  2. في صفحة استضافة بوت Telegram اضغط أنشئ سيرفرًا على إحدى الباقات. في نافذة الطلب أجب عن لأي منصة بوتك؟ باختيار Telegram، ثم اختر اللغة التي كُتب بها بوتك.
  3. افتح سيرفرك في اللوحة. في بطاقة إعداد بوتك ضمن نظرة عامة تحقق من ما الذي يعمل ثم اضغط متابعة.
  4. في الاتصال بـ Telegram الصق الرمز واضغط ربط. تحقق من اسم البوت المعروض واضغط نعم، متابعة.
  5. في كودك اضغط إنشاء بوت تجريبي للبدء، أو ارفع ملفاتك أو اربط Git.
  6. اضغط تشغيل البوت وانتظر ظهور بوتك متصل في Telegram. أرسل له /start لتجربته.
  7. في صفحة البوت، قسم Telegram، اضغط افتح في Telegram وأرسل إلى بوتك /start.

نشرح كل خطوة أدناه.

1. أنشئ البوت عبر @BotFather

  1. في Telegram ابحث عن @BotFather وافتح المحادثة.
  2. أرسل /newbot. يطلب منك @BotFather اسمًا يراه الناس في المحادثات، ثم معرّفًا (username). يجب أن ينتهي المعرّف بـ bot، مثل tetris_bot أو TetrisBot.
  3. يرد @BotFather بالرمز، وهو سطر مثل 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw. انسخه. من يملكه يتحكم في بوتك، فلا تشاركه ولا تضعه في كودك.

فقدت الرمز؟ في @BotFather أرسل /mybots، واختر بوتك، ثم API Token.

2. اطلب باقة لـ Telegram

كل باقة تشغّل بوت Telegram، بدءًا من STARTER (0.5 GB). اضغط أنشئ سيرفرًا على الباقة التي تريدها. تسألك نافذة الطلب لأي منصة بوتك؟: اختر Telegram. ثم تختار لغة بوتك: Node.js أو Python أو Java أو C# (.NET) أو Bun أو Deno أو Go أو Rust. لا تعرف أي باقة تختار؟ في python-telegram-bot مقابل aiogram على PlayNHost الذاكرة التي قسناها لكل مكتبة.

نافذة طلب باقة STARTER، الخطوة 1 من 2: لأي منصة بوتك؟ مع تحديد Telegram، وثماني بطاقات للغات هي Node.js وPython وJava وC# (.NET) وBun وDeno وGo وRust.

لديك باقة بوت معدّة لـ Discord؟ لا تحتاج إلى باقة جديدة. في صفحة البوت، قسم Discord، ابحث عن بطاقة لأي منصة هذا البوت؟ واختر Telegram ثم أكّد بـ تبديل. لا يُحذف شيء: يبقى رمز Discord محفوظًا ويعود إذا عدت إلى Discord. وإذا كنت قد حفظت رمزك في البيئة باسم TELEGRAM_BOT_TOKEN، فيصبح رمز Telegram دون أن تلصق شيئًا من جديد.

3. الصق الرمز

افتح سيرفرك في اللوحة. تقودك بطاقة إعداد بوتك في نظرة عامة عبر ثلاث خطوات: ما الذي يعمل والاتصال بـ Telegram وكودك.

  1. تذكر ما الذي يعمل لغة سيرفرك، مثل يشغّل هذا البوت Python Bot. اضغط متابعة، أو تغيير ما يعمل إن لم تكن اللغة صحيحة.
  2. الاتصال بـ Telegram: الصق الرمز تحت الصق رمز بوتك واضغط ربط. تعرض اللوحة جارٍ التحقق لدى Telegram... ثم اسم بوتك ومعرّفه @username مع هل هذا بوتك؟. اضغط نعم، متابعة.

يمكنك أيضًا لصقه في صفحة البوت، قسم Telegram، تحت الرمز. الرمز الذي يرفضه Telegram لا يُحفظ: ترى لم يقبل Telegram هذا الرمز. انسخه من جديد من @BotFather.

يُخزَّن الرمز مشفّرًا ولا تعرضه اللوحة مرة أخرى. يحصل كودك عليه متغير بيئة بخمسة أسماء، فتعمل معظم الأمثلة دون تعديل:

الاسميستخدمه
TELEGRAM_BOT_TOKENبوتاتنا التجريبية
BOT_TOKENأمثلة aiogram وTelegraf وnode-telegram-bot-api
TOKENالعنصر النائب في أمثلة python-telegram-bot وpyTelegramBotAPI
TELEGRAM_TOKENشائع في الشروحات
TELOXIDE_TOKENteloxide (Rust)، يقرؤه Bot::from_env()

في Python اقرأه بـ os.environ["TELEGRAM_BOT_TOKEN"]، وفي Node.js بـ process.env.TELEGRAM_BOT_TOKEN.

4. أضف كودك

في كودك تعرض البطاقة ما يناسب سيرفرك:

  • إنشاء بوت تجريبي للبدء (لسيرفرات Node.js وPython التي لا كود فيها): بوت صغير يعمل ويرد على /start. في Python يكتب bot.py وrequirements.txt مع python-telegram-bot 22، وفي Node.js يكتب index.js وpackage.json مع grammY. ويضبط لك ملف البدء. عدّله كما تشاء ثم أعد التشغيل.
  • رفع الملفات: بوتك أنت، مع requirements.txt أو package.json. لا ترفع venv و.venv و__pycache__ وnode_modules. راجع كيف ترفع كود بوتك.
  • ربط Git: كودك من مستودع Git. راجع كيف تنشر بوتك وتحدّثه من GitHub.

يجب أن يستخدم كودك الاستطلاع الطويل (long polling): run_polling() في python-telegram-bot، أو start_polling() في aiogram، أو bot.start() في grammY، أو launch() في Telegraf. تحتاج webhooks إلى عنوان HTTPS عام، ولا تتضمنه هذه الباقات حاليًا. إن كنت تنقل بوتًا كان يستخدم webhook: كيف تنقل بوت Telegram إلى PlayNHost.

5. شغّله

اضغط تشغيل البوت في البطاقة، أو اضغط تشغيل، وافتح Console. في Python وNode.js وBun يثبّت السيرفر حزمك أولًا، فيستغرق أول تشغيل وقتًا أطول أثناء تنزيلها. بعد ذلك تُثبَّت من جديد فقط عندما تغيّرها (قائمة الحزم أو ملف الحزم أو إصدار بيئة التشغيل)، أو عندما يغيب node_modules، أو مرة كل يوم. وإلا ترى:

[PlayNHost] Packages are up to date. They install again when you change them, or after a day.
[PlayNHost] Starting your bot

ثم يطبع البوت التجريبي Logged in as @your_bot. تقرأ اللوحة هذا السطر: تتحول الشارة في نظرة عامة إلى متصل في Telegram. في كودك أنت اطبع سطرًا مشابهًا عندما يصبح البوت جاهزًا.

6. افتحه في Telegram

في صفحة البوت، قسم Telegram، اضغط افتح في Telegram. يفتح رابط t.me الخاص ببوتك. أرسل /start: يرد البوت التجريبي بـ Hello مع اسمك الأول وYour bot is running on PlayNHost.

يعرض القسم نفسه @username بوتك ومعرّفه (id)، وبطاقة في المجموعات فيها ما يسمح به Telegram للبوت في محادثات المجموعات.

قسم Telegram في صفحة البوت: تم التحقق من الرمز وهو صالح، واسم البوت و@playnhost_demo_bot، ورابط افتح في Telegram، وبطاقة في المجموعات التي تظهر الخصوصية مفعّلة.

إذا لم يرد

تقرأ اللوحة الـ console وتعرض فوقه شريط تنبيه فيه السبب وزر لإصلاحه:

  • لم يقبل Telegram رمز بوتك: أُلغي الرمز في @BotFather أو نُسخ بشكل خاطئ. اضغط استبدال الرمز.
  • بوتك يعمل في مكان آخر أيضًا: نسخة أخرى تستخدم الرمز نفسه، غالبًا على حاسوبك أو على استضافتك القديمة.
  • تم تعيين webhook لبوتك: اضغط إزالة الـ webhook.

تواصل بعض المكتبات إعادة المحاولة في هذه الحالات، فيبدو البوت شغّالًا بينما لا يرد شيء: شريط التنبيه هو ما يكشف لك ذلك. التفاصيل: إصلاح خطأ 409 Conflict في بوت Telegram.

أسئلة يطرحها الناس

هل يبقى بوتي متصلًا عندما أطفئ حاسوبي؟

نعم. يعمل على السيرفر، لا على حاسوبك ولا في متصفحك. إذا تعطّل يُشغَّل من جديد خلال دقيقة تقريبًا؛ وإذا تعطّل مرة أخرى خلال دقيقة من ذلك يبقى متوقفًا، وتذكر Console السبب.

هل أستطيع استخدام webhook بدل الاستطلاع؟

ليس بعد. يحتاج webhook إلى عنوان HTTPS عام، ولا تتضمنه هذه الباقات حاليًا. لا يحتاج الاستطلاع إلى أي عنوان: يسأل بوتك Telegram عن الرسائل الجديدة. وإذا كان webhook معيّنًا على بوتك، يعرضه قسم Telegram مع إزالة الـ webhook، وهذا يُبقي الرسائل المنتظرة.

هل أستطيع تشغيل البوت نفسه على حاسوبي أثناء الاختبار؟

ليس بالرمز نفسه في الوقت نفسه. يسمح Telegram لنسخة واحدة من البوت بطلب الرسائل، فتحصل الأخرى على 409 Conflict. أوقف النسخة على حاسوبك، أو أنشئ بوتًا ثانيًا في @BotFather للاختبار.

لماذا لا يرى بوتي الرسائل في مجموعة؟

وضع الخصوصية في Telegram مفعّل افتراضيًا: في المجموعات يرى بوتك الأوامر الموجّهة إليه والردود عليه، لا كل الرسائل، إلا إذا كان مشرفًا في المجموعة. تعرض بطاقة في المجموعات إما الخصوصية مفعّلة أو الخصوصية معطّلة. لقراءة كل الرسائل أرسل /setprivacy إلى @BotFather وعطّلها، ثم أزل البوت من المجموعة وأضفه من جديد.

أي باقة أحتاج؟

تشغّل STARTER (0.5 GB) بوت python-telegram-bot أو aiogram أو grammY أو Telegraf مع مساحة لكودك. اختر 1 GB أو أكثر عندما يحتفظ البوت ببيانات في الذاكرة، أو يتعامل مع ملفات أو صور، أو يشغّل عدة بوتات في عملية واحدة. شاهد الباقات في استضافة بوت Telegram.

بوتك مستضاف في مكان آخر بالفعل؟ انقله إلينا

أحدث مقالات المدونة