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