ربات تلگرام میتواند به سؤالها جواب بدهد، فرمانها را اجرا کند و چت را به سرویسهای دیگر وصل کند. ساخت ربات با BotFather شروع میشود، اما برای پاسخگویی باید یک گردشکار بدون کدنویسی یا برنامهای برای پردازش پیامها تنظیم کنید.
در این راهنما یاد میگیرید چطور در سال ۲۰۲۶ یک ربات تلگرام بسازید: حسابش را ثبت کنید، توکن بگیرید، پاسخگویی را بدون کدنویسی یا با Python راه بیندازید و خطاهای رایج راهاندازی را برطرف کنید. اول سراغ BotFather میرویم و بعد هر دو روش ساخت یک ربات کاربردی را قدمبهقدم بررسی میکنیم.
خلاصه
از طریق حساب رسمی @BotFather ثبتنام کنید و توکن دسترسی را محرمانه نگه دارید.
برای پاسخهای ساده، یک گردشکار بدون کدنویسی کافی است؛ Python هم امکان پیادهسازی منطق دلخواه را به شما میدهد.
BotFather حساب ربات را میسازد، اما برای پاسخگویی باید یک گردشکار یا برنامه در حال اجرا داشته باشید.
قبل از انتشار ربات، /start، /help و یک پیام متنی را در چت خصوصی امتحان کنید.
ربات تلگرام چیست؟
ربات تلگرام برنامهای است که کاربران از طریق یک حساب تلگرامیِ مخصوص خودکارسازی با آن تعامل میکنند. ربات میتواند به سؤالها پاسخ بدهد، فرمانها را اجرا کند یا گفتگو را به سرویس دیگری وصل کند؛ همانطور که در معرفی رباتهای تلگرام توضیح داده شده است.
با یک کار شروع کنید. ربات راهنما میتواند دستورهای /start و /help را نشان دهد. ربات اکو هم پیام را تکرار میکند: سلام را بفرستید و سلام را دریافت کنید. همین برای بررسی اتصال کافی است؛ بعداً میتوانید منطق بیشتری اضافه کنید.
ربات لزوماً چتبات هوش مصنوعی نیست. برای پاسخ ثابت، یک قانون ساده کافی است؛ اما پاسخ هوش مصنوعی به اتصال جداگانه به یک مدل نیاز دارد. Mini Apps رابطهای وبی هستند که داخل تلگرام باز میشوند و ساختشان با ربات متنی این راهنما فرق دارد.
رباتها بخشی از اکوسیستم تبلیغاتی تلگرام هم هستند: یک پلتفرم تبلیغات تلگرام مثل AdsGram در کانالها، رباتها و Mini Apps کمپین اجرا میکند.
چطور یک ربات تلگرام بسازیم
ابتدا با BotFather حساب ربات را بسازید، بعد برای پیادهسازی عملکردش سراغ گردشکار بدون کدنویسی یا Python بروید. BotFather مرحله ثبتنام در هر دو روش است، نه راه سومی برای ساخت منطق گفتگو.
روش | چه چیزهایی تنظیم میکنید | بهترین نقطه شروع | چه چیزهایی را باید نگهداری کنید |
|---|---|---|---|
BotFather | حساب، نمایه و توکن دسترسی | ثبتنام الزامی | مالکیت و تنظیمات حساب |
بدون کدنویسی | محرکها، شرطها و پاسخها | گفتگوی کوتاه و قابلپیشبینی | گردشکار، اطلاعات ورود و در دسترس بودن سرویس |
Python | هندلرها و منطق برنامه | قوانین یا اتصالهای سفارشی | کد، وابستگیها و محیط اجرا |
پیش از انتخاب ابزار ساخت ربات تلگرام، یک گفتگو را روی کاغذ بیاورید: پیام ورودی → شرط → پاسخ. مطمئن شوید ابزار از انواع پیام موردنیاز، شاخهبندی و ذخیرهسازی داده پشتیبانی میکند. اگر گفتگو استثناهای زیادی دارد، بررسی کنید تغییر قوانین در ویرایشگر تصویری چقدر با تغییرشان در کد تفاوت دارد.

ثبتنام با BotFather
حساب رسمی @BotFather را باز کنید، /newbot را بفرستید و برای انتخاب نام نمایشی و نام کاربری، دستورالعملها را دنبال کنید. تلگرام این روند ثبتنام را در آموزش ساخت اولین ربات توضیح داده است.
- با پیوند مستقیم بالا BotFather را باز کنید و روی Start بزنید.
- عبارت
/newbotرا بفرستید. - یک نام نمایشی وارد کنید؛ مثلاً
Workshop Help. - یک نام کاربریِ در دسترس انتخاب کنید که به bot ختم شود؛ مثلاً
workshop_help_demo_bot. - توکن دسترسی را در یک مدیر گذرواژه یا مخزن امن نگه دارید.
- لینک بات را باز کنید تا مطمئن شوید میتوانید وارد گفتوگوی آن شوید.
نام کاربری نمونه صرفاً جنبهٔ نمایشی دارد و در دسترس بودنش تضمینشده نیست. از حروف لاتین، عدد و زیرخط استفاده کنید و شرایط نامگذاریای را که BotFather نشان میدهد رعایت کنید.
توکن دسترسی، بات را به Bot API معرفی و احراز هویت میکند. هر کسی که به این توکن دسترسی پیدا کند ممکن است کنترل بات را به دست بگیرد؛ بنابراین آن را در اسکرینشاتها، مخزنهای کد یا اسناد مشترک منتشر نکنید. برای باتی که از قبل ساختهاید، از بخش مدیریت BotFather توکن را دریافت یا جایگزین کنید. اگر توکن افشا شد، آن را باطل کنید و برنامهٔ متصل را با توکن جدید بهروزرسانی کنید.

فرمانهای کاربردی BotFather
اینها فرمانهای رایج برای راهاندازی هستند، نه فهرستی کامل. برای دیدن تنظیمات موجود، به راهنمای BotFather تلگرام و منوی فعلی BotFather مراجعه کنید.
فرمان | کاربرد |
|---|---|
| ثبت بات |
| مدیریت باتهایتان |
| ویرایش نام نمایشی |
| توضیح عملکرد بات |
| ویرایش معرفی کوتاه پروفایل |
| تنظیم تصویر پروفایل |
| تنظیم منوی فرمانها |
| ساخت توکن احراز هویت |
فقط فرمانهایی را اضافه کنید که برنامهتان واقعاً اجرا میکند. اضافهشدن یک گزینه به منو، پاسخی برای آن ایجاد نمیکند: /help همچنان به یک قانون در گردشکار یا handler در کد نیاز دارد.
ساخت بات بدون کدنویسی
برای ساخت بات تلگرام بدون کدنویسی، توکنش را به یک گردشکار بصری وصل کنید و مشخص کنید پیامهای دریافتی چطور به پاسخ تبدیل شوند. در ادامه یک نمونهٔ ساده با n8n میبینید؛ n8n ابزار اتوماسیون شخص ثالث است و متعلق به تلگرام نیست.
کار را با یک نمونه n8n شروع کنید که بتواند رویدادهای تلگرام را دریافت کند. میزبانی روی سرور خودتان به پیکربندی سرور هم نیاز دارد؛ پس «بدون کدنویسی» به معنای «بدون راهاندازی» نیست. فرض نکنید طرح میزبانیشده یا اجرای پیوسته رایگان است.
- یک گردشکار جدید بسازید و Telegram Trigger را اضافه کنید.
- اعتبارنامههای تلگرام را بسازید و توکن BotFather را در فیلد Access Token وارد کنید و طبق مستندات اعتبارنامه.
- رویداد Message را در Telegram Trigger انتخاب کنید.
- یک کنش تلگرام اضافه کنید و resource را روی Message و operation را روی Send Message بگذارید.
- فیلد Chat ID را روی شناسهٔ گفتوگوی پیام دریافتی تنظیم کنید. اگر این کنش مستقیماً بعد از trigger قرار دارد، از عبارت
{{ $json.message.chat.id }}استفاده کنید. - فیلد Text را روی
Hello! Your bot is connected.بگذارید. مستندات کنش تلگرامعملیات پشتیبانیشده را توضیح میدهد. - شنوندهٔ آزمایشی را اجرا کنید و بعد یک پیام خصوصی جدید برای بات بفرستید.
- پاسخ را بررسی کنید و برای استفادهٔ مداوم، گردشکار را منتشر یا فعال کنید.
این تنظیم عمداً به همهٔ پیامها یک پاسخ یکسان میدهد. در مرحلهٔ بعد، شرطی اضافه کنید تا /start را به پیام خوشامدگویی و /help را به راهنما هدایت کند. برای ورودیهای ناشناخته هم پاسخی در نظر بگیرید تا کاربر را منتظر نگذارید.
در n8n خودمیزبان، تلگرام به یک نشانی webhook عمومی با HTTPS نیاز دارد. ثبت webhook در حالت آزمایشی و عملیاتی ممکن است جای یکدیگر را بگیرد؛ بنابراین هنگام تغییر گردشکار فعال، از یک بات آزمایشی جداگانه استفاده کنید. راهنمای عیبیابی تلگرام در n8n را ببینید.
ساخت بات تلگرام با Python
وقتی به کنترل دقیقتری روی پاسخها، اعتبارسنجی و یکپارچهسازیها نیاز دارید، از Python استفاده کنید. نمونهٔ زیر فرمانهای /start, /help و تکرار متن دریافتی را با الگوی handler ناهمگامِ نمونهٔ python-telegram-bot.
آمادهسازی پروژه
یک نسخهٔ پشتیبانیشده از Python نصب کنید؛ برای این مثال، Python 3.12 گزینهٔ مناسبی است. مستندات کتابخانه جزئیات سازگاری را توضیح میدهد. یک پوشه و محیط مجازی بسازید تا بستههای این پروژه از بقیه جدا بمانند.
در macOS یا Linux:
mkdir telegram-bot-demo cd telegram-bot-demopython3 -m venv .venv source .venv/bin/activate python -m pip install "python-telegram-bot==22.8"
در Windows PowerShell، از py -m venv .venv استفاده کنید،
سپس .\.venv\Scripts\Activate.ps1 را اجرا کنید و بعد همان دستور نصب را وارد کنید.
اگر سیاستهای سیستم مانع فعالسازی میشوند، بهجای تغییر سیاست سیستم فقط برای این آموزش، مستقیماً .\.venv\Scripts\python.exe را اجرا کنید.
افزودن کد ربات
این کد را با نام bot.py ذخیره کنید. توکن از یک متغیر محیطی خوانده میشود، نه از رشتهای که در مخزن کد ثبت شده باشد.
import os
from telegram import Update
from telegram.ext (
Application, CommandHandler, ContextTypes,
MessageHandler, filters,
)
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message:
await update.message.reply_text("Hello! Send text or use /help.")
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message:
await update.message.reply_text("I repeat text messages. Try sending Hello.")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message and update.message.text:
await update.message.reply_text(update.message.text)
def main():
token = os.environ.get("TELEGRAM_BOT_TOKEN")
if not token:
raise SystemExit("Set TELEGRAM_BOT_TOKEN before starting the bot.")
app = Application.builder().token(token).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("help", help_command))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling(allowed_updates=["message"])
if __name__ == "__main__":
main()
اجرای ربات
رمز را در همان نشست ترمینال تنظیم کنید و python bot.py را اجرا کنید. در macOS یا Linux با bash یا zsh، به این ترتیب لازم نیست توکن را مستقیماً در دستوری وارد کنید که در تاریخچهٔ shell ذخیره میشود:
read -s "TELEGRAM_BOT_TOKEN?Paste bot token: "zsh export TELEGRAM_BOT_TOKEN python bot.py
برای bash، خط اول را با read -s -p "Paste bot token: " TELEGRAM_BOT_TOKEN جایگزین کنید.
در PowerShell 7، این دستور را اجرا کنید: $env:TELEGRAM_BOT_TOKEN = Read-Host -MaskInput 'Paste bot token'، سپس python bot.py را اجرا کنید.
گفتوگوی خصوصی را باز کنید و /start, /help و یک پیام کوتاه را امتحان کنید. برای متوقفکردن فرایند، Ctrl+C را بزنید. این کد نقطهٔ شروعی برای یادگیری است و پایگاه داده، ذخیرهٔ وضعیت گفتوگو یا پایش محیط عملیاتی ندارد.
روشن نگهداشتن ربات
برنامه را روی میزبانی اجرا کنید که همیشه روشن است، یا گردشکار بدون کد را در محیط میزبانیاش فعال نگه دارید. با بستن فرایند محلی Python، ربات دیگر پاسخ نمیدهد.
لانگ پولینگ یعنی برنامهٔ شما برای دریافت رویدادهای ورودی از Telegram درخواست میفرستد. در وبهوک، Telegram رویدادها را به سرور شما ارسال میکند. مرجع Bot API این دو روشِ ناسازگار برای دریافت بهروزرسانیها را توضیح میدهد. نمونهٔ Python از پولینگ استفاده میکند و تریگر n8n از وبهوک.
پیش از تبدیل یک پروژهٔ آزمایشی به سرویسی مشترک:
- توکن را در تنظیمات محرمانهٔ میزبان نگه دارید و پوشهٔ .venv و فایلهای حاوی اطلاعات محرمانه را از Git خارج کنید.
- برای هر توکن ربات فقط یک نمونهٔ پولینگ اجرا کنید؛ نگذارید برنامهٔ دیگری رویدادهای همان ربات را دریافت کند.
- راهاندازی مجدد خودکار را تنظیم کنید و خطاها را بدون ثبت اطلاعات محرمانه یا محتوای غیرضروری پیامها بررسی کنید.
- وضعیت ضروری مکالمه را بیرون از حافظهٔ فرایند ذخیره کنید.
- راهاندازی مجدد را امتحان کنید و مطمئن شوید ربات دوباره فعال میشود.
اگر پروژه بعداً به رابط وب نیاز پیدا کرد، برای آن جداگانه برنامهریزی کنید. راهنمای AdsGram دربارهٔ اشتباهات رایج در توسعهٔ Telegram Mini App هم برای آن مرحله مفید است.
در ۳ مرحله کسب درآمد کنید
- 01اتصال
- 02تبلیغات را قرار دهید
- 03پرداخت دریافت کنید
رفع خطاهای رایج راهاندازی
اگر ربات پاسخ نمیدهد، پیش از تغییر تنظیمات نمایهاش، برنامهٔ در حال اجرا و نحوهٔ دریافت بهروزرسانیها را بررسی کنید. این ترتیب کمک میکند مشکل حساب را از ایراد گردشکار یا کد جدا کنید.
- پس از ثبتنام پاسخی نمیرسد: گردشکار یا برنامه را متصل و اجرا کنید؛ BotFather بهتنهایی آن را اجرا نمیکند.
- متغیر محیطی پیدا نمیشود:
TELEGRAM_BOT_TOKENرا در همان شِل یا سرویس میزبانیای تنظیم کنید که Python را اجرا میکند. - خطای احراز هویت: وجود فاصلهٔ اضافی، قدیمی بودن توکن یا استفاده از اطلاعات ورود ربات اشتباه را بررسی کنید.
- تداخل پولینگ: فرایندهای تکراری را متوقف کنید. اگر از سرویس وبهوک جابهجا میشوید، پیش از شروع پولینگ، وبهوک آن را عمداً با
deleteWebhookحذف کنید؛ بخش پرسشهای متداولِ بهروزرسانیهای Telegram را ببینید. - گفتوگوی خصوصی کار میکند، اما گروه نه: حالت حریم خصوصی را بررسی کنید و فرمانی خطاب به ربات را امتحان کنید؛ مثلاً
/help@your_bot_username. - فرمان منو کاری نمیکند: برای آن فرمان یک هندلر پیادهسازی کنید؛ اضافه کردنش در BotFather فقط باعث میشود نمایش داده شود.
پرسشهای متداول
برای شروع، نیازی به حساب میزبانی ندارید و میتوانید همهچیز را روی رایانهٔ خودتان اجرا کنید. پاسخهای زیر میگویند برای ثبت ربات و فعال نگهداشتنش چه چیزهایی لازم است.
میتوانم رایگان یک ربات Telegram بسازم؟
استفاده از پلتفرم پایهٔ رباتهای Telegram رایگان است و میتوانید یک ربات کوچک Python را روی رایانهٔ خودتان بسازید. ممکن است برای میزبانی، سرویسهای بدون کدنویسی یا APIهای خارجی هزینهٔ جداگانه داشته باشید. برای شروع، یک ربات ساده بسازید که به پیامهای متنی پاسخ میدهد و پیش از فعال نگهداشتن دائمی آن، هزینهٔ میزبانی یا سرویسها را بررسی کنید.
BotFather امن است؟
از حساب رسمیای استفاده کنید که از طریق مستندات Telegram یا پیوند مستقیم @BotFather در این راهنما به آن میرسید. BotFather ابزار مدیریت رباتهای Telegram است. خطرهای اصلی هنگام راهاندازی، حسابهای جعلی و افشای توکن دسترسیاند. توکن را محرمانه نگه دارید و فقط در اختیار برنامه یا سرویسی بگذارید که آگاهانه به آن اعتماد دارید تا ربات را اجرا کند.
چطور از BotFather توکن ربات Telegram بگیرم؟
به BotFather رسمی پیام /newbot بدهید و مراحل انتخاب نام و نام کاربری را انجام دهید. سپس BotFather توکن آن ربات را در اختیارتان میگذارد. اگر ربات را از قبل ساختهاید، از گزینههای مدیریتش برای ساخت توکن استفاده کنید. توکن را امن نگه دارید و هر وقت توکن قبلی را لغو یا جایگزین کردید، اطلاعات ورود برنامهتان را هم بهروز کنید.
برای ساخت ربات Telegram به Python نیاز دارم؟
نه. با یک گردشکار بصری میتوانید بدون Python رباتی بسازید که به پیامها پاسخ دهد؛ زبانهای برنامهنویسی دیگر هم میتوانند با Bot API کار کنند. روش را بر اساس رفتاری که نیاز دارید و چیزی که میتوانید نگهداری کنید انتخاب کنید. برای یک ابزار بصری، یک نمودار تصمیمگیری ساده کافی است؛ اما اعتبارسنجیها و یکپارچهسازیهای پیچیدهتر شاید نوشتن برنامهٔ اختصاصی را توجیه کنند.
چرا وقتی ترمینال را میبندم، ربات از کار میافتد؟
در این مثال، ترمینال فرایندی را اجرا میکند که پیامها را دریافت و به آنها پاسخ میدهد. با پایان یافتن فرایند، این منطق هم متوقف میشود، هرچند حساب ربات همچنان وجود دارد. برای استفادهٔ مداوم، برنامه را در محیطی همیشهروشن مستقر کنید که امکان راهاندازی مجدد داشته باشد؛ یا گردشکار میزبانیشده را فعال نگه دارید و اگر پاسخها متوقف شدند، گزارشهای اجرا را بررسی کنید.





