اول لوکیشن، بعد پلن
مهم ترین تصمیم برای هاست ربات تلگرام حجم دیسک نیست، مکان سرور است. تلگرام داخل ایران فیلتر است و سروری که در ایران باشد نمی تواند همیشه به API تلگرام وصل شود. سرورهای هلند و آلمان مستقیم به تلگرام می رسند، پس برای ربات تلگرام یکی از آن دو را انتخاب کنید.
یک هاست لینوکس ربات تلگرام با سی پنل برای بیشتر ربات های ساده کافی است: ربات پاسخ گو، ربات اطلاع رسان، ربات فروش فایل یا مدیریت گروه. پلن ها از 1 گیگابایت فضا، 2 گیگابایت رم و 10 مگابایت I/O شروع می شوند و گواهی SSL رایگان است، که برای وب هوک لازم دارید.
وب هوک یا پولینگ، کدام را بگذارم
در پولینگ، برنامه شما مدام از تلگرام می پرسد پیام جدیدی هست یا نه. این یعنی یک پروسه که باید همیشه روشن بماند و روی هاست اشتراکی، پروسه های بلند مدت ممکن است با محدودیت منابع قطع شوند. در وب هوک، تلگرام خودش هر پیام را به آدرس HTTPS شما می فرستد و اسکریپت فقط هنگام دریافت پیام اجرا می شود.
برای هاست اشتراکی تقریبا همیشه وب هوک انتخاب درست تری است. مقاله راه اندازی وب هوک تلگرام مراحل ثبت آدرس را توضیح داده است.
ربات های واقعی معمولا یک کار تکراری هم دارند: ارسال یادآوری، چک کردن یک فید، پاک کردن داده منقضی. این کارها را با Cron Jobs در سی پنل تنظیم کنید و لازم نیست پروسه ای دائمی بالا باشد. فاصله اجرا را از چیزی که واقعا لازم است کمتر نگیرید، چون هر اجرا از سهمیه منابع پلن مصرف می کند.
برای اینکه ببینید کران درست اجرا می شود، خروجی را در یک فایل لاگ بریزید و بعد از اولین اجرا آن را بخوانید. جزئیات در راه اندازی کران جاب در سی پنل آمده است.
- آدرس وب هوک باید با HTTPS و روی دامنه ای با گواهی معتبر باشد.
- بعد از ثبت، با متد getWebhookInfo بررسی کنید که خطایی در آخرین تلاش ثبت نشده باشد.
- اگر ربات با پایتون نوشته شده، سرویس هاست پایتون را هم ببینید.
مثال: ربات پشتیبانی یک فروشگاه کوچک
فرض کنید ربات فقط وضعیت سفارش را از دیتابیس MySQL می خواند و جواب می دهد. هر پیام یک اجرای کوتاه PHP است. چنین ربات با وب هوک روی پایین ترین پلن جا می شود و گیر اصلی دیتابیس است، نه پردازش. شاخص ها را روی ستونی بگذارید که جستجو می کنید.
اگر همان ربات بخواهد فایل های بزرگ را ارسال کند یا گزارش های سنگین بسازد، I/O و رم مهم تر می شوند. قبل از خرید، تعداد کاربران فعال روزانه را تخمین بزنید و در هفته اول مصرف منابع را در سی پنل ببینید. اگر به سقف نزدیک شدید، ارتقا از طریق تیکت امکان دارد.
پشتیبان گیری، انتقال ربات و خطاهای رایج
روی پلن تلگرام پشتیبان روزانه رایگان است، اما توکن ربات را داخل کد و مخزن عمومی نگذارید. اگر توکن لو برود، از BotFather آن را دوباره بسازید. توکن را در یک فایل تنظیمات بیرون از پوشه عمومی نگه دارید.
اگر ربات شما الان جای دیگری اجرا می شود، اول کد را روی هاست جدید بگذارید و یک ربات آزمایشی با توکن جدا بسازید. با آن وب هوک را ثبت کنید و چند سناریوی اصلی را امتحان کنید: دستور شروع، یک پاسخ با دکمه شیشه ای، ارسال عکس و یک خطای عمدی. فقط وقتی همه درست بود، وب هوک ربات اصلی را عوض کنید.
یادتان باشد که با ثبت وب هوک جدید، آدرس قبلی از کار می افتد. بنابراین انتقال را در ساعتی انجام دهید که کاربران کمتری فعال هستند و دیتابیس را پیش از آن با mysqldump پشتیبان بگیرید.
- ربات جواب نمی دهد و getWebhookInfo خطای SSL نشان می دهد: گواهی دامنه را در سی پنل بررسی کنید.
- پیام ها دوبار پردازش می شود: اسکریپت باید سریع جواب 200 بدهد، وگرنه تلگرام دوباره می فرستد.
- ربات روی سرور ایران اجرا شده و گاهی قطع می شود: سرور را به هلند یا آلمان ببرید.
چه زمانی این محصول مناسب نیست
اگر ربات شما حساب کاربری واقعی تلگرام را کنترل می کند و به اتصال دائمی نیاز دارد، هاست معمولی کافی نیست و باید سراغ هاست مدلاین بروید. اگر ربات چندین پروسه همزمان، صف پیام یا کنترل کامل روی سیستم لازم دارد، سرور ابری هلند انتخاب مناسب تری است.
مقاله های مرتبط
آخرین بروزرسانی متن: