
مقدمه: چرا BotFather قلب تپنده رباتهای تلگرام است؟
اگر تا به حال به فکر ساخت یک ربات تلگرام افتادهاید، اولین و مهمترین ابزاری که با آن روبرو میشوید BotFather است. BotFather ربات رسمی تلگرام است که تمام فرآیندهای ایجاد، تنظیم و مدیریت رباتهای شخص ثالث را در خود جای داده است. بدون آن، هیچ رباتی نمیتواند در تلگرام ثبت شود، توکن (کلید API) دریافت کند یا حتی نام و هویت داشته باشد. در این مقاله به صورت عملی و گامبهگام یاد میگیرید چگونه با BotFather یک ربات ساده در تلگرام ایجاد و راهاندازی کنیم و پس از آن با تنظیمات حیاتی مانند دستورات، حریم خصوصی و امنیت توکن آشنا میشوید.
این آموزش مبتنی بر جدیدترین نسخه رسمی BotFather تا زمان نگارش (۲۰۲۶) است و برای تمام پلتفرمهای تلگرام (موبایل اندروید، iOS و دسکتاپ) یکسان عمل میکند. فرقی نمیکند برنامهنویس باشید یا نه؛ برای ایجاد یک ربات ساده کافی است مراحل زیر را دنبال کنید.
پیشنیازها و آمادهسازی
قبل از شروع، مطمئن شوید که یک حساب تلگرام فعال دارید و تلگرام را روی یکی از دستگاههای خود نصب کردهاید. BotFather در نسخه موبایل و دسکتاپ دقیقاً یکسان کار میکند؛ بنابراین میتوانید از هر دستگاهی که راحتتر هستید استفاده کنید. همچنین ایدهای از هدف ربات خود داشته باشید: قرار است پاسخگوی سوالات رایج باشد، پیامهای خوشآمد بگوید یا اخبار را نمایش دهد؟ این ایده به شما در انتخاب نام و دستورات کمک میکند.
گام اول: پیدا کردن BotFather و شروع مکالمه
در نوار جستجوی تلگرام عبارت @BotFather را جستجو کنید. نتیجه اول با نام BotFather و چکمارک آبی رسمی را باز کنید. روی دکمه Start یا شروع کلیک کنید. BotFather بلافاصله پیام خوشآمدگویی و لیست کاملی از دستورات موجود را ارسال میکند.
نکته:
دستورات BotFather با اسلش (/) شروع میشوند. مهمترین دستور برای شروع /newbot است. همیشه میتوانید با ارسال /help راهنمای کامل را دریافت کنید.
ساخت ربات جدید با /newbot
دستور /newbot را ارسال کنید. BotFather از شما دو چیز میخواهد: نام نمایشی (Name) و نام کاربری (Username). نام نمایشی هر متنی میتواند باشد (مثلاً «ربات آبوهوا») اما نام کاربری باید حتماً به bot ختم شود (مثلاً WeatherBot). پس از تأیید، BotFather یک پیام موفقیت همراه با توکن ربات شما ارسال میکند. توکن رشتهای مانند 123456:ABC-DEF1234... است و کلید دسترسی به API ربات شما محسوب میشود.
هشدار:
توکن ربات خود را هرگز با دیگران به اشتراک نگذارید و در کدهای عمومی (مانند گیتهاب) منتشر نکنید. در صورت لو رفتن، فوراً با دستور /revoke توکن قبلی را باطل کنید.
تنظیمات اولیه: ظاهر و هویت ربات
پس از ایجاد ربات، توصیه میشود تنظیمات ظاهری و توضیحات آن را شخصیسازی کنید. از دستور /mybots استفاده کنید، ربات خود را انتخاب کرده و گزینه Edit Bot را بزنید. در این بخش میتوانید:
- نام (Name) را با
/setnameتغییر دهید. - توضیحات (Description) را با
/setdescriptionبنویسید (مثلاً «ربات پیشبینی آبوهوا برای شهرهای ایران»). - درباره (About) را با
/setabouttextتنظیم کنید که در پروفایل ربات نمایش داده میشود. - عکس پروفایل را با
/setuserpicآپلود کنید (فرمت پشتیبانیشده: PNG, JPG تا 512 کیلوبایت).
مثال: فرض کنید میخواهید یک ربات اطلاعرسانی رویدادها داشته باشید. توضیحات را «ربات یادآوری رویدادهای هفتگی» و عکس پروفایل را یک تقویم ساده قرار دهید. این کار باعث افزایش اعتماد کاربران میشود.
تنظیم دستورات ربات (/setcommands)
دستورات (Commands) منوی راهنمای ربات را تشکیل میدهند. با دستور /setcommands میتوانید لیست دستورات و توضیحات کوتاه آنها را تعریف کنید. برای مثال:
start - شروع کار با ربات help - راهنما weather [شهر] - پیشبینی آبوهوا subscribe - عضویت در اطلاعرسانی روزانه
BotFather هر خط را بهعنوان یک دستور جدید ثبت میکند. حداکثر ۱۰۰ دستور مجاز است و هر دستور نباید بیش از ۳۲ کاراکتر باشد. کاربران با تایپ / در چت با ربات میتوانند این دستورات را ببینند.
مدیریت حریم خصوصی و دسترسیها
BotFather دستور /setprivacy را برای کنترل اینکه آیا ربات در گروهها میتواند همه پیامها را ببیند یا فقط پیامهایی که با دستوراتش خطاب شدهاند، ارائه میدهد. دو حالت وجود دارد:
- Disable (پیشفرض برای رباتهای جدید): ربات همه پیامهای گروه را میبیند.
- Enable (فعال کردن حریم خصوصی): ربات فقط پیامهایی را میبیند که با
/شروع شوند یا در پاسخ به پیام خودش ارسال شده باشند.
اگر ربات شما نیاز به پردازش تمام مکالمات گروه (مثلاً فیلتر کلمات) دارد، پیامد را غیرفعال کنید. در غیر این صورت بهتر است حالت پیشفرض (حریم خصوصی غیرفعال) را حفظ کنید تا مصرف API کاهش یابد.
آزمایش ربات جدید
پس از تنظیمات، ربات خود را در یک چت خصوصی آزمایش کنید. روی نام کاربری ربات کلیک کرده و Start را بزنید. دستورات تعریفشده را امتحان کنید. اگر ربات پاسخی نداد، اطمینان حاصل کنید که توکن به درستی در سرور یا سرویس میزبانی شما تنظیم شده است. برای تست ساده، میتوانید از سرویسهای آنلاین مانند Telegram Bot API Sandbox (فرضی) استفاده کنید یا با یک کتابخانه مانند python-telegram-bot کد سادهای بنویسید که فقط /start را با یک پیام خوشآمد پاسخ دهد.
بدهبستانهای معماری: BotFather در مقابل سرور شخصی
استفاده از BotFather صرفاً برای ثبت و تنظیم ربات است. خود BotFather ربات شما را اجرا نمیکند؛ شما نیاز به یک سرور (اختصاصی، ابری یا رایگان مانند Heroku) دارید که کد ربات را میزبانی کند. برای رباتهای ساده و آموزشی، میتوانید از سرویسهای رایگان محدود استفاده کنید. اما اگر ربات شما نیاز به پردازش همزمان زیاد (مثلاً بیش از ۱۰۰۰ کاربر همزمان) دارد، بهتر است سرور اختصاصی با Webhook و SSL داشته باشید.
انتخاب بین Long Polling و Webhook نیز مهم است. Polling سادهتر است اما تأخیر بیشتری دارد و مصرف API بالاتری دارد. Webhook سریعتر است اما نیاز به سرور با IP عمومی و گواهی SSL دارد. برای رباتهای ساده، Polling کافی است.
خطاهای رایج و رفع اشکال
در اینجا چند مشکل متداول و راهحل آنها آورده شده است:
- نام کاربری تکراری: اگر پیغام Sorry, this username is already taken دریافت کردید، نام دیگری انتخاب کنید (اضافه کردن عدد یا کلمههای متفاوت).
- توکن نامعتبر: اطمینان حاصل کنید که توکن دقیقاً از BotFather کپی شده و در کد شما بدون فاصله اضافی ذخیره شده است.
- ربات پاسخ نمیدهد: ابتدا چک کنید که سرور شما آنلاین و کد به درستی اجرا میشود. اگر از Polling استفاده میکنید، مطمئن شوید که حلقه دریافت پیام (getUpdates) فعال است. همچنین ممکن است ربات در حالت
/setprivacyفعال قرار داشته باشد و دستورات شما با اسلش شروع نشده باشند. - محدودیت نرخ (Rate Limit): تلگرام محدودیت ۳۰ پیام در ثانیه برای هر ربات اعمال میکند. اگر کاربران زیادی همزمان از ربات استفاده میکنند، ممکن است خطا دریافت کنید. برای کاهش، از صف (queue) و تاخیر (sleep) در کد استفاده کنید.
سناریوهای پیشرفته: اینلاین و گروه
BotFather قابلیت فعالسازی حالت اینلاین را با دستور /setinline فراهم میکند. با فعالسازی، کاربران میتوانند در هر چتی با تایپ @username_robot از ربات شما استفاده کنند. همچنین دستور /setjoingroups تعیین میکند که آیا ربات میتواند به گروهها اضافه شود یا نه. اگر ربات شما قرار است در گروهها خدماتی ارائه دهد، این گزینه را فعال کنید.
نتیجهگیری و گامهای بعدی
در این آموزش یاد گرفتید چگونه با BotFather یک ربات ساده در تلگرام ایجاد و راهاندازی کنید. از جستجوی BotFather گرفته تا تنظیم دستورات و مدیریت حریم خصوصی. اکنون زمان آن رسیده که ربات خود را کدنویسی کنید. زبانهای محبوب برای توسعه ربات تلگرام شامل Python (کتابخانه python-telegram-bot)، Node.js (node-telegram-bot-api) و PHP هستند. با دنبال کردن مستندات رسمی تلگرام میتوانید ربات خود را به یک سیستم کامل تبدیل کنید.
اگر به دنبال الهام هستید، پیشنهاد میکنم یک ربات یادآوری، ربات جستجوی کتاب یا ربات آبوهوا بسازید. بهخاطر داشته باشید که BotFather ابزار ثبت است و قلب ربات شما کد آن است. موفق باشید!
پرسشهای متداول
آیا میتوانم ربات را پس از ایجاد حذف کنم؟
بله. با دستور /deletebot در BotFather میتوانید ربات خود را بهطور کامل حذف کنید. توجه داشته باشید که این عمل غیرقابل بازگشت است و توکن مربوطه نیز باطل میشود.
چگونه توکن ربات را ریست (باطل) کنم؟
از دستور /revoke در BotFather استفاده کنید. این دستور توکن فعلی را باطل کرده و یک توکن جدید تولید میکند. حتماً توکن جدید را در کد ربات خود بهروزرسانی کنید.
آیا ربات من میتواند پیامهای خصوصی کاربران را در گروه ببیند؟
نه، مگر اینکه ربات بهعنوان ادمین گروه با مجوز «خواندن پیامها» اضافه شده باشد و حالت حریم خصوصی (setprivacy) غیرفعال باشد. بهطور پیشفرض ربات نمیتواند پیامهایی که با / شروع نشدهاند را ببیند.
حداکثر تعداد دستورات قابل تعریف چقدر است؟
تا ۱۰۰ دستور. همچنین هر دستور حداکثر ۳۲ کاراکتر و توضیحات آن حداکثر ۲۵۶ کاراکتر میتواند باشد.
آیا BotFather برای ساخت رباتهای تجاری مناسب است؟
بله، BotFather برای ثبت و مدیریت اولیه تمام رباتها (تجاری و غیرتجاری) استفاده میشود. اما میزبانی و کدنویسی ربات بر عهده شماست. برای رباتهای پرترافیک باید زیرساخت مناسب داشته باشید.