هذا القسم مخصص للبوتات التي تستضيف بوت Telegram الخاص بك أو تشغّله. وحتى الآن تعمل كل خيارات الاستضافة التي فحصناها عبر موقع ويب لا داخل Telegram.
ما زلنا نختبر البوتات لهذه الصفحة. عد لاحقًا أو اقترح بوتًا.
بحثنا في منصات استضافة البوتات ومزوّدي VPS وقوائم الاستضافة المجانية عن بوت على Telegram ينشر بوتك أو يشغّله أو يديره، وفحصنا كل مرشح عبر t.me وموقعه الخاص. المنصات التي وجدناها تعمل من لوحة ويب ولا تربط إلا بقناة أخبار أو دردشة مجتمع. أما البوت الوحيد الذي ينشئ خوادم من Telegram فيتبع مزوّدًا يبيع أيضًا خوادم VPS «warez» وأرقامًا افتراضية ووكلاء سكنية، لذا لا يستوفي قواعدنا. وسنضيف بوتًا هنا عندما يجتاز الفحوصات نفسها التي يجتازها بقية الدليل.
بوت Telegram برنامج عادي يتواصل مع Bot API عبر api.telegram.org، لذا يمكن تشغيله على أي استضافة توفر ثلاثة أشياء: عملية تبقى قيد التشغيل، واتصالًا صادرًا بالإنترنت، ومكانًا لحفظ البيانات يبقى بعد إعادة التشغيل. ولاستخدام webhook تحتاج أيضًا إلى عنوان HTTPS عام على أحد المنافذ التي يقبلها Telegram: 443 أو 80 أو 88 أو 8443. وتصلح الشهادة الموقّعة ذاتيًا أيضًا إذا رفعت جزأها العام عند استدعاء setWebhook. أما قاعدة البيانات المحفوظة على القرص نفسه مع الشيفرة فتضيع إذا أعادت الاستضافة بناء الحاوية، فتحقّق من المكان الذي تُحفظ فيه إعدادات مستخدميك وتذكيراتهم فعلًا.
يناسب long polling خادم VPS صغيرًا أو حاسوبًا منزليًا: يطلب البوت الرسائل الجديدة من Telegram بنفسه ولا يحتاج إلى نطاق ولا شهادة. أما webhook فيناسب المنصات التي تشغّل شيفرتك مع كل طلب، مثل الدوال السحابية؛ ومع الدفع لكل طلب لا يكلّف البوت الخامل شيئًا. لكن المشكلة في كل ما يجب أن يفعله البوت من تلقاء نفسه، كتذكير في الساعة 9:00: الدالة التي لا تستيقظ إلا مع الرسائل الواردة تحتاج إلى مُجدوِل منفصل. ولا يمكن الجمع بين الوضعين: ما دام webhook مفعّلًا يعيد getUpdates خطأً حتى تستدعي deleteWebhook.
الخدمة التي تشغّل بوتك تحتاج إلى رمزه، والرمز يعني تحكّمًا كاملًا: من يملكه يتلقى كل الرسائل المرسلة إلى البوت ويستطيع النشر باسمه. لا تسلّمه إلا لاستضافة تقف خلفها شركة معروفة، وتأكّد أن موقع المزوّد نفسه يربط بالبوت أو اللوحة التي تستخدمها، وإذا جرّبت خدمة ولم تكمل فألغِ الرمز عبر BotFather. وهذا هو الفحص الذي لم يجتزه بعدُ أي بوت استضافة لهذا القسم.
في وضع long polling عبر getUpdates يكفي أي حاسوب متصل بالإنترنت، حتى المنزلي، لكن البوت لا يردّ إلا ما دام الجهاز يعمل. أما webhook فيحتاج إلى عنوان HTTPS عام: خادم افتراضي أو استضافة أو دالة سحابية تعمل مع كل طلب.
يبقى البوت في Telegram لكنه يصمت: لا ردّ على الأوامر، ولا تُرسَل التذكيرات أو الرسائل الجماعية المفترضة. ويحتفظ Telegram بالتحديثات الواردة حتى 24 ساعة، فإذا أُعيد التشغيل سريعًا تلقّاها البوت، أما الأقدم فيضيع.
احفظه في متغيّر بيئة أو مخزن أسرار على الخادم، لا في الشيفرة ولا في المستودع. وإذا تسرّب فألغِه عبر @BotFather واستخرج رمزًا جديدًا: يتوقف القديم فورًا، ويبقى أن تضع الجديد على الخادم.
يبقى الرمز واسم المستخدم كما هما: انقل الشيفرة وقاعدة البيانات، وأوقف النسخة القديمة قبل تشغيل الجديدة. فعمليتان تستخدمان الرمز نفسه مع getUpdates تتصادمان بخطأ 409 Conflict، أما webhook فلا يصل إلا إلى آخر عنوان ضُبط.