مقدمه

ربات‌های تلگرام (Bots) ابزارهای خودکاری هستند که می‌توانند پیام‌ها را پردازش کنند، محتوا ارائه دهند و فرایندهای تکراری را به‌صورت خودکار انجام دهند. ایجاد یک ربات تلگرام از طریق ربات رسمی BotFather انجام می‌شود که ثبت‌نام اولیه، دریافت توکن API و تنظیمات پایه را فراهم می‌کند. در این مقاله یاد می‌گیرید چگونه با استفاده از BotFather یک ربات تلگرام ایجاد کنید و آن را برای ارسال پیام خوش‌آمدگویی و سایر پاسخ‌های خودکار آماده کنید. این مراحل برای هر نوع رباتی – از ساده تا پیچیده – یکسان است.

نکته: BotFather تنها ربات رسمی و معتبر تلگرام برای مدیریت ربات‌ها است. تمام عملیات ثبت و تغییرات از طریق این ربات انجام می‌شود.

پیش‌نیازها

پیش از شروع، مطمئن شوید که یک حساب تلگرام فعال دارید و روی یکی از پلتفرم‌های Android، iOS یا دسکتاپ (Telegram Desktop) وارد شده‌اید. همچنین به اتصال اینترنت پایدار نیاز دارید. BotFather به‌صورت عمومی در دسترس است و نیازی به نصب نرم‌افزار اضافی ندارد. بهتر است از آخرین نسخه رسمی تلگرام استفاده کنید تا باگ‌های احتمالی در نسخه‌های قدیمی مانع کار نشوند.

گام‌های ایجاد ربات با BotFather

۱. شروع گفتگو با BotFather

در نوار جستجوی تلگرام، عبارت BotFather را جستجو کنید. ربات با علامت تیک آبی (رسمی) را انتخاب کنید. روی دکمه Start یا ارسال دستور /start کلیک کنید. با این کار یک پیام خوش‌آمدگویی حاوی لیست کامل دستورات موجود دریافت خواهید کرد که راهنمای اولیه خوبی است.

۲. اجرای دستور /newbot

دستور /newbot را ارسال کنید. BotFather از شما می‌خواهد دو مورد را وارد کنید:

  • نام ربات (Name): نام نمایشی که کاربران در چت می‌بینند. می‌تواند هر متنی باشد، مثلاً «ربات هواشناسی من».
  • نام کاربری (Username): شناسه یکتای ربات که باید با bot خاتمه یابد (مثلاً my_weather_bot). این نام در لینک دعوت استفاده می‌شود و قابل تغییر نیست مگر با حذف و ایجاد مجدد.

دقت کنید که نام کاربری حساسیت زیادی دارد و پس از ثبت، تنها راه تغییر آن حذف ربات و ایجاد دوباره است.

هشدار: نام کاربری باید منحصربه‌فرد باشد. اگر تکراری باشد، BotFather خطا می‌دهد و از شما می‌خواهد نام دیگری انتخاب کنید.

۳. دریافت توکن API

پس از تأیید نام کاربری، BotFather پیامی حاوی توکن دسترسی (Access Token) ارسال می‌کند. این توکن یک رشته بلند شامل اعداد و حروف است که کلید احراز هویت ربات شما محسوب می‌شود. آن را در جای امنی ذخیره کنید. هر ربات یک توکن منحصربه‌فرد دارد و اگر آن را گم کنید، باید از دستور /token دوباره دریافت کنید.

نکته: توکن را با هیچ‌کس به اشتراک نگذارید و آن را مستقیماً در کد برنامه قرار ندهید. از متغیرهای محیطی (Environment Variables) استفاده کنید.

تنظیمات اولیه ربات

پس از ایجاد ربات، می‌توانید ویژگی‌های بصری و دستورات آن را از طریق BotFather سفارشی کنید. این تنظیمات بدون نیاز به کدنویسی انجام می‌شوند و ظاهر حرفه‌ای‌تری به ربات شما می‌دهند.

تعیین عکس پروفایل

دستور /setuserpic را ارسال کنید، سپس نام کاربری ربات خود را انتخاب کنید. تصویری با فرمت PNG یا JPEG با حداکثر حجم ۵۱۲ کیلوبایت ارسال کنید. این تصویر در چت‌ها و نتایج جستجو نمایش داده می‌شود و اولین برداشت کاربران را شکل می‌دهد.

تنظیم توضیحات (Description) و درباره (About)

با دستور /setdescription می‌توانید توضیح کوتاهی درباره قابلیت‌های ربات بنویسید. این متن در ابتدای گفتگو با ربات نمایش داده می‌شود. دستور /setabout برای نوشتن خلاصه‌ای از ربات در پروفایل آن استفاده می‌شود. هر دو فیلد به کاربر کمک می‌کنند سریع‌تر با هدف ربات آشنا شوند.

تعریف دستورات (Commands)

دستورات ربات از طریق /setcommands تنظیم می‌شوند. لیستی از دستورات را به صورت خط به خط ارسال کنید؛ هر خط شامل یک دستور با اسلش و توضیح آن است، مثلاً:

start - شروع ربات
help - راهنما
weather - دریافت وضعیت آب و هوا

این دستورات در منوی پیشنهادی کاربران نمایش داده می‌شوند و کار با ربات را شهودی‌تر می‌کنند. می‌توانید حداکثر ۱۰۰ دستور تعریف کنید.

اتصال به کد و انتخاب روش دریافت پیام

برای آنکه ربات شما بتواند پیام‌ها را پردازش کند، باید یک سرور یا اسکریپت در حال اجرا داشته باشید که از API تلگرام استفاده کند. دو روش اصلی برای دریافت پیام‌ها وجود دارد: Webhook و Long Polling. انتخاب هر کدام به نیاز و زیرساخت شما بستگی دارد و تأثیر مستقیمی روی تأخیر و مقیاس‌پذیری دارد.

ویژگی Webhook Long Polling
معماری تلگرام پیام‌ها را به آدرس HTTPS مشخص‌شده شما ارسال می‌کند اسکریپت شما هر از چند ثانیه از تلگرام پیام‌های جدید را درخواست می‌کند
نیاز به سرور عمومی بله، نیاز به دامنه با گواهی SSL معتبر خیر، می‌توان روی localhost در حال توسعه بود
تأخیر پاسخ تقریباً بلادرنگ بسته به فاصله پولینگ، معمولاً چند ثانیه
مقیاس‌پذیری بالا (مناسب برای ربات‌های پرترافیک) محدود (مناسب برای ربات‌های کوچک و آزمایشی)

درخت تصمیم: Webhook یا Long Polling؟

  1. آیا ربات شما در محیط توسعه محلی و بدون دامنه عمومی اجرا می‌شود؟ ← Long Polling
  2. آیا به پاسخ‌دهی آنی (زیر یک ثانیه) نیاز دارید و سرور با SSL در دسترس دارید؟ ← Webhook
  3. آیا ربات شما در یک سرور اشتراکی با ترافیک بالا میزبانی می‌شود؟ ← Webhook (بار کمتری روی سرور شما ایجاد می‌کند)
  4. آیا هنوز در مراحل اولیه توسعه و تست هستید؟ ← Long Polling (ساده‌تر برای اشکال‌زدایی)

هشدار: اگر Webhook فعال باشد، دستور getUpdates (پولینگ) کار نخواهد کرد. قبل از جابجایی بین روش‌ها، Webhook را با deleteWebhook غیرفعال کنید.

پیاده‌سازی پیام خوش‌آمدگویی

یکی از رایج‌ترین کاربردهای ربات، ارسال پیام خوش‌آمدگویی به کاربران جدید است. این کار با استفاده از کتابخانه‌های کلاینت API تلگرام مانند python-telegram-bot یا node-telegram-bot-api انجام می‌شود. در اینجا یک نمونه با پایتون ارائه می‌دهیم.

پیاده‌سازی پیام خوش‌آمدگویی
پیاده‌سازی پیام خوش‌آمدگویی

مثال با python-telegram-bot (مبتنی بر Polling)

فرض کنید ربات شما «ربات خوش‌آمدگو» نام دارد. با استفاده از کتابخانه python-telegram-bot، کد زیر پیام خوش‌آمدگویی را هنگام دستور /start ارسال می‌کند:

from telegram import Update
from telegram.ext import Application, CommandHandler

async def start(update: Update, context):
    await update.message.reply_text(
        f"سلام {update.effective_user.first_name}! به ربات خوش‌آمدگو خوش آمدید.\n"
        "از دستور /help برای مشاهده راهنما استفاده کنید."
    )

app = Application.builder().token("YOUR_TOKEN_HERE").build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

این کد با آخرین نسخه python-telegram-bot (تا زمان نگارش) کار می‌کند. توکن خود را جایگزین YOUR_TOKEN_HERE کنید. برای اجرا، ابتدا کتابخانه را با pip install python-telegram-bot نصب کنید. در صورت تمایل به Webhook، از متد run_webhook() استفاده کنید.

نکته: برای استفاده از Webhook، به جای run_polling() از run_webhook() با آدرس و پورت مناسب استفاده کنید و مسیر webhook را تنظیم کنید.

امنیت و محدودیت‌ها

امنیت ربات تلگرام مستقیماً به محافظت از توکن API وابسته است. همچنین تلگرام محدودیت‌هایی برای جلوگیری از سوءاستفاده اعمال می‌کند که باید در طراحی ربات در نظر گرفته شوند.

محافظت از توکن

  • توکن را در فایل کد منبع قرار ندهید. از متغیرهای محیطی یا فایل‌های پیکربندی خارج از مخزن استفاده کنید.
  • اگر توکن به اشتباه فاش شد، از BotFather با دستور /revoke توکن جدید صادر کنید.
  • برای Webhook حتماً از آدرس HTTPS با گواهی معتبر استفاده کنید.

با رعایت این نکات ساده، ریسک دسترسی غیرمجاز به ربات خود را به حداقل می‌رسانید.

محدودیت نرخ (Rate Limit)

تلگرام برای هر ربات محدودیت ارسال پیام (حدود ۳۰ پیام در ثانیه به یک کاربر، و سقف کلی) اعمال می‌کند. برای ربات‌های پرترافیک، از صف‌بندی و تاخیر هوشمند استفاده کنید. همچنین Webhook محدودیت به‌روزرسانی‌های هم‌زمان دارد (به‌طور پیش‌فرض ۱۰۰ به‌روزرسانی). در صورت تجاوز از این محدودیت‌ها، تلگرام ممکن است ربات را موقتاً مسدود کند.

رفع اشکالات رایج

در زیر چند مشکل متداول و راه‌حل‌های قابل تأیید ارائه شده است. در صورت بروز هر یک، ابتدا این موارد را بررسی کنید.

  • ربات پیام‌ها را دریافت نمی‌کند: بررسی کنید که Webhook فعال است یا خیر. دستور /getWebhookInfo را در مرورگر با آدرس https://api.telegram.org/bot<TOKEN>/getWebhookInfo اجرا کنید. اگر url خالی بود، یعنی Webhook تنظیم نشده و باید از Long Polling استفاده کنید یا Webhook را تنظیم کنید.
  • توکن نامعتبر است: مطمئن شوید توکن را دقیقاً کپی کرده‌اید. توکن‌های قدیمی پس از revoke منقضی می‌شوند. با دستور /token در BotFather توکن جدید بگیرید.
  • نام ربات تغییر نمی‌کند: از دستور /setname در BotFather استفاده کنید. نام می‌تواند بعداً تغییر کند، اما نام کاربری پس از ثبت قابل تغییر نیست (فقط با حذف ربات).
  • خطای SSL در Webhook: گواهی SSL باید توسط یک مرجع معتبر امضا شده باشد. گواهی self-signed در Webhook تلگرام پشتیبانی نمی‌شود (مگر با آپلود فایل certificate.pem).

اگر پس از بررسی این موارد مشکل همچنان پابرجا بود، مستندات رسمی API تلگرام را مطالعه کنید یا در انجمن‌های توسعه‌دهندگان جستجو کنید.

پرسش‌های متداول

آیا برای ایجاد ربات تلگرام نیاز به دانش برنامه‌نویسی دارم؟

مراحل ثبت ربات از طریق BotFather بدون نیاز به کدنویسی انجام می‌شود. اما برای پیاده‌سازی قابلیت‌های پیشرفته (مانند پاسخ به پیام‌ها، دکمه‌های شیشه‌ای و …) باید با یکی از زبان‌های برنامه‌نویسی و کتابخانه‌های مربوطه آشنا باشید.

آیا می‌توانم یک ربات با نام کاربری تکراری ایجاد کنم؟

خیر. نام کاربری ربات در سراسر تلگرام یکتا است. اگر نامی که انتخاب می‌کنید قبلاً ثبت شده باشد، BotFather از شما می‌خواهد نام دیگری انتخاب کنید.

چگونه می‌توانم ربات خود را به کانال یا گروه اضافه کنم؟

ربات را به عنوان عضو به گروه یا کانال اضافه کنید. ابتدا مطمئن شوید ربات توسط @BotFather به عنوان «گروه» فعال شده است (دستور /setjoingroups). سپس ربات را به گروه دعوت کنید و به آن اجازه ارسال پیام دهید.

حداکثر تعداد ربات‌هایی که یک حساب می‌تواند ایجاد کند چقدر است؟

تلگرام محدودیت رسمی اعلام نکرده است، اما بر اساس تجربه کاربران، هر حساب می‌تواند تا ۵۰ ربات ایجاد کند. اگر به تعداد بیشتری نیاز دارید، ممکن است با محدودیت مواجه شوید.

جمع‌بندی و گام‌های بعدی

در این مقاله یاد گرفتید چگونه با BotFather یک ربات تلگرام ایجاد کنید، تنظیمات اولیه را انجام دهید، توکن API را دریافت کرده و برای پردازش پیام‌ها یکی از روش‌های Webhook یا Long Polling را انتخاب کنید. همچنین نحوه پیاده‌سازی پیام خوش‌آمدگویی و نکات امنیتی را مرور کردیم.

گام بعدی: یک سرویس ساده (مثلاً ربات آب و هوا یا ربات یادآور) را پیاده‌سازی کنید و آن را روی یک سرور رایگان مانند Heroku یا Railway مستقر کنید. مستندات رسمی Telegram Bot API را مطالعه کنید تا با قابلیت‌های پیشرفته‌تر آشنا شوید. با توجه به روند توسعه، انتظار می‌رود تلگرام در نسخه‌های آینده امکانات بیشتری برای ربات‌ها فراهم کند، بنابراین به‌روزرسانی‌های رسمی را دنبال کنید.