شغّل بوت تيليجرام يعمل 24/7 دون توقّف

أوقف تشغيل بوت تيليجرام على جهازك أو على باقة مجانية تنام عند الخمول. شغّله كتطبيق صغير يعمل على مدار الساعة، يعيد تشغيل نفسه عند أيّ تعطّل، ويحفظ رمزه بأمان. تسعير مسبق الدفع، ورصيد تجريبي مجاني بقيمة ٥ دولارات للانطلاق.

BlnTek Solutions · قراءة في ٤ دقائق
بوت تيليجرامتيليجراماستضافةنشر

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

لماذا التطبيق داخل حزمة Docker هو المكان الصحيح للبوت

البوت عملية طويلة الأمد، لا موقع يردّ على طلب واحد ثمّ ينصرف. هو يحتاج أن يبقى حيّاً، ويحافظ على اتصاله بتيليجرام، ويعود فوراً بعد أيّ تعثّر. والتطبيق الدائم على alawadi.cloud يمنحك الثلاثة معاً: يعمل بلا انقطاع، وتعيد المنصّة تشغيله تلقائياً إن توقّفت العملية، ويبقى شغّالاً ما دام رصيدك إيجابياً.

كيف يتحدّث البوت إلى تيليجرام

أمامك طريقتان، ويفيدك أن تعرف أيّهما تستخدم:

  • long polling (getUpdates): يسأل بوتك تيليجرام مراراً عن الرسائل الجديدة. كلّ الحركة صادرة، فلا حاجة للبوت برابط عام. هذه أبسط طريقة، وهي المعتمدة في هذا الدليل.
  • الويب هوك: يدفع تيليجرام التحديثات إلى رابط HTTPS عام تعرضه أنت. إن فضّلته، افتح المنفذ 8080 ووجّه الويب هوك إلى نطاقك الفرعي *.alawadi.cloud الذي يحمل شهادة TLS أصلاً.

بالنسبة لمعظم البوتات، يبقى long polling أسهل طريق إلى العمل على مدار الساعة، فابدأ منه.

ما ستحتاجه

  • رمز بوت من BotFather في تيليجرام
  • كود بوتك (يستخدم هذا الدليل Python، وNode مع Telegraf يعمل بالطريقة ذاتها)
  • Docker مثبّت محلياً لبناء الحزمة واختبارها
  • حساب على alawadi.cloud: دخول بحساب Google، من دون بطاقة، ورصيد تجريبي مجاني من داخل البوابة

الخطوة ١: بوت بسيط

هذا بوت كامل يعمل بطريقة long polling عبر python-telegram-bot. يقرأ رمزه من متغيّر بيئة، لا من نصٍّ مكتوب داخل الكود:

python
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes
 
async def start(update: Update, _: ContextTypes.DEFAULT_TYPE) -> None:
    await update.message.reply_text("أهلاً! أعمل على مدار الساعة على alawadi.cloud.")
 
def main() -> None:
    token = os.environ["BOT_TOKEN"]   # يُحقن من البوابة، لا يُكتب داخل الكود
    app = Application.builder().token(token).build()
    app.add_handler(CommandHandler("start", start))
    app.run_polling()                 # استطلاع طويل: مكالمات صادرة فقط
 
if __name__ == "__main__":
    main()

ضع python-telegram-bot==21.6 في ملف requirements.txt بجانبه.

الخطوة ٢: ملف Dockerfile

تثبّت الحزمة الاعتماديات وتشغّل البوت بمستخدم غير root، لأنّ المنصّة ترفض تشغيل الحزم بمستخدم root. وبوت الاستطلاع الطويل لا يقدّم HTTP، فلا حاجة له بمنفذ مفتوح:

dockerfile
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
# التشغيل بمستخدم غير root؛ المنصّة ترفض تشغيل الحزم بمستخدم root
RUN useradd --create-home bot
USER bot
CMD ["python", "bot.py"]

ابنِ الحزمة وشغّلها على جهازك برمزك، وتأكّد أنّ البوت يردّ على /start:

bash
docker build -t my-telegram-bot .
docker run --rm -e BOT_TOKEN=your-token-here my-telegram-bot

الخطوة ٣: أبقِ الرمز سرّاً

لا تدمج رمز بوتك داخل الحزمة، ولا ترفعه إلى Git أبداً. من البوابة، اضبط BOT_TOKEN كمتغيّر بيئة (أو سرّ) على الخدمة، فتحقنه المنصّة عند التشغيل. وإن تسرّب الرمز يوماً، ألغِه من BotFather واضبط قيمة جديدة، دون أيّ إعادة بناء.

الخطوة ٤: انشره ودعه يبقى شغّالاً

افتح Cloud Studio، وأنشئ تطبيقاً، وامنحه اسماً، ووجّهه إلى حزمتك عبر مستودع خاص وGitHub OIDC، وهو مسار النشر التلقائي نفسه المشروح في درس النشر خلال 5 دقائق. وبعد تشغيله:

  • يبقى شغّالاً على مدار الساعة، محافظاً على حلقة long polling مع تيليجرام دون أن تلمس شيئاً.
  • إن تعطّلت العملية، تعيد المنصّة تشغيلها تلقائياً.
  • السجلّات المباشرة في لوحة التحكم تعرض كلّ تحديث يعالجه بوتك، فيصبح تتبّع الأخطاء سهلاً.

شغّل نسخة واحدة فقط

بوت long polling يجب أن يعمل بنسخة واحدة فقط. فإن أجرت نسختان long polling على تيليجرام بالرمز نفسه، تنازعتا على التحديثات وظهرت لك رسالة «Conflict: terminated by other getUpdates request». أبقِ البوت على نسخة واحدة في البوابة؛ فالتوسيع التلقائي وُضِع لتطبيقات الويب التي تعالج طلبات متوازية كثيرة، لا لحلقة long polling واحدة. وإن احتجت سعة أكبر يوماً، انتقل إلى الويب هوك بدل زيادة النسخ.

الخطوة ٥: امنح بوتك ذاكرة (اختياري)

إن احتاج بوتك أن يتذكّر المستخدمين أو النقاط أو الحالة، فأضف قاعدة PostgreSQL مُدارة أو Redis من تبويب قواعد البيانات. يحقن ربطها بيانات الاتصال في بوتك تلقائياً، وتتولّى المنصّة تخزينها ونسخها الاحتياطي. وهو النمط نفسه المعروض في قائمة الإطلاق.

كم يكلّف، وكيف تبدأ

بوت صغير دائم التشغيل قليل التكلفة، ويُخصم استهلاكه من سجلّ رصيد بالدولار مع عرض اختياري بالدولار أو الليرة أو الدرهم أو الدينار الأردني. قدّر تكلفته عبر حاسبة الأسعار، ثم فعّل رصيداً تجريبياً بقيمة 5 دولارات من دون بطاقة. القسائم مسبقة الدفع المسعّرة بالليرة السورية هي وسيلة التعبئة الوحيدة المتاحة؛ ولا تتوفر تعبئة بالبطاقات أو العملات الرقمية حالياً. وإن نفد رصيدك، توقّف البوت توقّفاً هادئاً، وبقيت بياناتك محفوظة ٧ أيام ريثما تعيد التعبئة، فلا شيء يُحذف من تحتك.

أسئلة شائعة

هل أحتاج رابطاً عاماً لبوتي؟

ليس مع long polling. البوت يجري اتصالات صادرة فقط نحو تيليجرام، فلا يحتاج عنواناً وارداً. لا تختر الويب هوك (وتفتح المنفذ 8080) إلا إن أردت تحديداً أن يدفع تيليجرام التحديثات إليك.

هل لن ينام بوتي فعلاً؟

صحيح، لن ينام. التطبيق الدائم ليس باقة مجانية تنام عند الخمول؛ يعمل بلا انقطاع ما دام رصيدك إيجابياً، وتعيد المنصّة تشغيله إن تعطّل.

هل أستطيع تشغيل بوت بلغة Node؟

نعم. تنطبق الخطوات نفسها مع Telegraf أو grammY: اقرأ الرمز من متغيّر بيئة، وشغّل البوت بمستخدم غير root، ثم انشره. لديك سؤال آخر؟ افتح تذكرة دعم في البوابة أو راسل [email protected].

مشاركة
BlnTek Solutions

الشركة المطوّرة لمنصّة alawadi.cloud

شركة تبني منصّة سحابية عربية الهوية، من الخوادم الفعلية وصولاً إلى تجربة المطوّرين.

مقالات ذات صلة

react

كيف تنشر مشروع React على الاستضافة خلال دقيقة

انقل مشروع React من جهازك إلى رابطٍ مباشر بشهادة TLS على استضافة سحابية مُدارة: ملف Dockerfile صغير للإنتاج، وعملية نشرٍ واحدة في Cloud Studio، ثمّ شهادة ونطاق وسجلّات ومراقبة تلقائية. ابدأ برصيد تجريبي مجاني بقيمة 5 دولارات دون بطاقة.

· قراءة في ٤ دقائق

ووردبريس

إنشاء مواقع ووردبريس بدون إدارة خادم — الدليل العملي

إنشاء مواقع ووردبريس بدون إدارة خادم: ادمج الإضافات والقالب في حزمة Docker صغيرة، واحفظ المحتوى في قاعدة MySQL مُدارة، وأرسل الوسائط إلى تخزين متوافق مع S3. دليل صادق خطوة بخطوة — بما فيه ما لا يعمل. ابدأ مجاناً برصيد تجريبي بقيمة 5 دولارات.

· قراءة في ٦ دقائق

vps

الخادم الافتراضي الخاص (VPS): ما هو، ومتى تكفيك استضافة التطبيقات المُدارة؟

يمنحك الخادم الافتراضي الخاص (VPS) خادماً كاملاً بصلاحية root، ومعه كلّ أعباء نظام التشغيل والأمان والنسخ الاحتياطي والتحديث. نشرح لك ما هو فعلاً، ومتى يكون الخادم الخام هو الأداة الصحيحة، ومتى تكفيك استضافة التطبيقات المُدارة دون عبء إدارة النظام. ابدأ مجاناً برصيد تجريبي بقيمة 5 دولارات.

· قراءة في ٥ دقائق

أطلق تطبيقك على alawadi.cloud

انشر خلال دقيقة تقريباً، وادفع بطرق تعمل فعلاً في منطقتنا، مع دعم يردّ عليك بالعربية.

أنشئ حسابك