رفتن به محتوای اصلی
👋 سطح: مبتدی · رایگان

سورس ربات خوش‌آمدگویی تلگرام

ساده‌ترین ربات تلگرام که به کاربر خوش‌آمد می‌گوید و پیام‌هایش را تکرار می‌کند؛ بهترین نقطهٔ شروع برای یادگرفتن اینکه یک ربات تلگرام از درون چطور کار می‌کند.

سوال یا راهنمایی لازم داری؟ از صفحهٔ تماس با ما بپرس.

طراحی و کدنویسی: زبان: Python 3وابستگی: requestsزمان راه‌اندازی: ۱۰ دقیقهمجوز: رایگان (CC0)به‌روزرسانی: ۲ مهر ۱۴۰۵

این ربات چه کاری انجام می‌دهد؟

این ربات وقتی کاربر دستور /start را بزند به او خوش‌آمد می‌گوید و بعد از آن هر پیام متنی که کاربر بفرستد، همان را برایش تکرار می‌کند. بهترین نقطهٔ شروع برای یادگیری ساختار یک ربات تلگرام است.

⚠️ نکتهٔ مهم: ربات تلگرام باید روی سروری اجرا شود که به api.telegram.org دسترسی دارد؛ روی خیلی از هاست‌های داخل ایران این آدرس مستقیم باز نیست. اگر ربات اجرا نشد، معمولاً مشکل از دسترسی سرور است نه از کد. اگر گیر کردی، از طریق صفحهٔ تماس با ما کمک بگیر.

آموزش راه‌اندازی قدم‌به‌قدم

این مراحل را به‌ترتیب انجام بده تا ربات روی سیستم خودت یا سرور بالا بیاید. داخل فایل ZIP یک راهنمای README هم هست.

از ربات BotFather داخل تلگرام یک ربات جدید بساز و توکن آن را بگیر.
پایتون را نصب کن و در ترمینال دستور pip install requests را اجرا کن.
فایل bot.py را باز کن و مقدار TOKEN را با توکن رباتت جایگزین کن.
دستور python bot.py را اجرا کن تا ربات روشن شود.
داخل تلگرام ربات خودت را باز کن، /start بزن و پیام بفرست تا پاسخ echo را ببینی.

کل سورس ربات (کپی یا دانلود کن)

این همان کدی است که داخل فایل ZIP هم هست. فقط یادت باشد مقدار TOKEN را با توکن رباتت عوض کنی.

bot.py
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
#  ربات خوش‌آمدگویی تلگرام
#  طراحی و کدنویسی: سروش مقدمی — فیلتور (filtori.com)
# ------------------------------------------------------------
#  این ربات ساده‌ترین نمونهٔ ممکنه:
#   - به دستور /start یک پیام خوش‌آمد می‌فرسته
#   - هر پیام متنی کاربر رو دوباره براش می‌فرسته (echo)
#  فقط با کتابخانهٔ requests نوشته شده و هیچ وابستگی دیگه‌ای نداره.
#
#  ⚠️ نکته: ربات تلگرام باید روی سروری اجرا بشه که به
#     api.telegram.org دسترسی داره.
#
#  آموزش کامل و تصویری:
#     https://filtori.com/telegram-bot-source/welcome-bot/
#  نیاز به نسخهٔ حرفه‌ای و اختصاصی داری؟ زنگ بزن: 09122874862
#  یا بیا تلگرام ما: https://t.me/filtori
# ------------------------------------------------------------

import time
import requests

# ۱) توکن رباتت رو از @BotFather داخل تلگرام بگیر و اینجا بذار.
TOKEN = "توکن_ربات_خودت_را_اینجا_بگذار"

# آدرس پایهٔ API تلگرام
BASE = f"https://api.telegram.org/bot{TOKEN}"


def send_message(chat_id, text):
    """ارسال یک پیام متنی به کاربر."""
    url = f"{BASE}/sendMessage"
    data = {"chat_id": chat_id, "text": text}
    try:
        requests.post(url, json=data, timeout=15)
    except requests.RequestException as error:
        print("خطا در ارسال پیام:", error)


def get_updates(offset):
    """گرفتن پیام‌های جدید با روش long polling."""
    url = f"{BASE}/getUpdates"
    params = {"offset": offset, "timeout": 30}
    try:
        response = requests.get(url, params=params, timeout=40)
        return response.json()
    except requests.RequestException as error:
        print("خطا در دریافت پیام‌ها:", error)
        return {"ok": False, "result": []}


def main():
    print("ربات خوش‌آمدگویی فیلتور روشن شد... (برای خاموش‌کردن Ctrl+C بزن)")
    offset = 0  # شمارهٔ آخرین آپدیتی که پردازش کردیم

    while True:
        updates = get_updates(offset)

        if not updates.get("ok"):
            time.sleep(2)  # اگر خطا بود، کمی صبر کن و دوباره امتحان کن
            continue

        for update in updates.get("result", []):
            offset = update["update_id"] + 1

            message = update.get("message")
            if not message:
                continue

            chat_id = message["chat"]["id"]
            text = message.get("text", "")

            if text == "/start":
                send_message(
                    chat_id,
                    "سلام 👋 به ربات ما خوش اومدی!\n"
                    "هر چیزی بنویسی همون رو برات برمی‌گردونم.\n"
                    "این ربات با ❤️ توسط فیلتور ساخته شده: filtori.com",
                )
            elif text:
                send_message(chat_id, f"گفتی: {text}")

        time.sleep(0.5)


if __name__ == "__main__":
    main()
کل سورس این ربات ↑

⬇ دانلود فایل ZIP این ربات

شخصی‌سازی سریع

با چند تغییر کوچک، ربات را مخصوص کسب‌وکار خودت کن.

متن خوش‌آمد

متن داخل send_message در بخش if text == "/start" را با معرفی کسب‌وکار خودت عوض کن.

پاسخ به‌جای تکرار

به‌جای f"گفتی: {text}" می‌توانی با چند if ساده به کلمه‌های مشخص جواب مشخص بدهی؛ نسخهٔ کامل این ایده ربات پاسخ‌گوی خودکار است.

قدم بعدی

بعد از این ربات، سراغ ربات ثبت سفارش برو تا گفتگوی چندمرحله‌ای را یاد بگیری.

خطاهای رایج و راه‌حل

اگر ربات اجرا نشد، اول پیام خطای ترمینال را با این جدول مقایسه کن. اگر خطایت اینجا نبود، از صفحهٔ تماس با ما بپرس.

پیام خطاعلتراه‌حل
401 Unauthorizedتوکن اشتباه است یا فاصلهٔ اضافه دارد.توکن را دوباره از BotFather کپی کن و بین دو علامت نقل‌قول بگذار.
409 Conflictیک نسخهٔ دیگر از ربات در حال اجراست یا روی ربات وب‌هوک تنظیم شده.نسخهٔ دیگر را خاموش کن. اگر قبلاً وب‌هوک گذاشته‌ای، آدرس api.telegram.org/bot<TOKEN>/deleteWebhook را یک بار باز کن.
Timeout یا ConnectionErrorسرور به api.telegram.org دسترسی ندارد.ربات را روی سروری اجرا کن که به تلگرام دسترسی دارد؛ روی بیشتر هاست‌های داخل ایران این آدرس باز نیست.
ModuleNotFoundError: requestsکتابخانهٔ requests نصب نشده.دستور pip install -r requirements.txt یا pip install requests را اجرا کن.
429 Too Many Requestsدر زمان کوتاه پیام زیادی ارسال شده.بین ارسال‌ها مکث بگذار؛ تلگرام حدود ۳۰ پیام در ثانیه اجازه می‌دهد.
ربات در گروه جواب نمی‌دهدPrivacy Mode ربات روشن است.در BotFather دستور /setprivacy را بزن و آن را Disable کن، یا ربات را ادمین گروه کن.

اجرای ۲۴ ساعته روی سرور لینوکس

با python bot.py ربات تا وقتی ترمینال باز است کار می‌کند. برای اجرای دائمی روی سرور لینوکس (Ubuntu/Debian)، فایل‌ها را در پوشهٔ /opt/mybot بگذار و یک سرویس systemd بساز تا ربات بعد از خطا یا ری‌استارت سرور خودش دوباره روشن شود.

/etc/systemd/system/mybot.service
[Unit]
Description=Filtori Telegram Bot
After=network-online.target

[Service]
WorkingDirectory=/opt/mybot
ExecStart=/usr/bin/python3 /opt/mybot/bot.py
Environment=PYTHONUNBUFFERED=1
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
فایل سرویس
terminal
sudo nano /etc/systemd/system/mybot.service   # متن بالا را اینجا بگذار
sudo systemctl daemon-reload
sudo systemctl enable --now mybot             # روشن‌کردن + اجرای خودکار بعد از ری‌استارت
journalctl -u mybot -f                        # دیدن لاگ‌ها
دستورها

راه‌اندازی روی سرور برایت سخت است؟ نصب و راه‌اندازی را به ما بسپار.

درخواست راه‌اندازی

از سورس رایگان تا ربات حرفه‌ای کسب‌وکار

این سورس برای یادگیری و شروع کار عالی است. وقتی ربات قرار است هر روز با مشتری واقعی کار کند، معمولاً به دیتابیس، پنل مدیریت، امنیت بیشتر و پشتیبانی نیاز دارد. تیم فیلتور همین ربات خوش‌آمدگویی تلگرام را اختصاصی و متناسب با فرآیند کسب‌وکارت می‌سازد.

امکانسورس رایگاننسخهٔ اختصاصی
ذخیره‌سازیفایل CSV/TXTدیتابیس
پنل مدیریت—✓
پرداخت آنلاین—✓
اتصال به سایت / CRM—✓
نصب و پشتیبانیخودتتیم فیلتور

سوال‌های پرتکرار دربارهٔ این ربات

این سورس ربات تلگرام رایگان است؟

بله، این سورس کاملاً رایگان است و می‌توانید بدون ثبت‌نام آن را دانلود و استفاده کنید.

برای اجرای این ربات به چه چیزی نیاز دارم؟

فقط به پایتون و کتابخانهٔ requests نیاز دارید. توکن ربات را هم از BotFather در تلگرام می‌گیرید.

می‌توانم متن خوش‌آمد را تغییر بدهم؟

بله، کافی است متن داخل تابع send_message در فایل bot.py را ویرایش کنید.

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

از صفحهٔ تماس با ما در filtori.com/contact پیام بدهید یا با شمارهٔ ۰۹۱۲۲۸۷۴۸۶۲ تماس بگیرید؛ اگر نسخهٔ اختصاصی همین ربات را برای کسب‌وکارتان بخواهید هم همین مسیر را استفاده کنید.

طراح و برنامه‌نویس این سورس‌ها · بنیان‌گذار فیلتور

مدیر بخش دیتابیس همراه اول و فعال در توسعهٔ نرم‌افزار از سال ۱۳۹۱؛ با سابقهٔ کار روی سامانه‌های بانکی و پرتراکنش. این سورس‌ها را طوری نوشته که ساده، خوانا و قابل توسعه باشند و مستقیم در کسب‌وکار واقعی استفاده شوند.

سوالی داری یا راهنمایی می‌خواهی؟

اگر در راه‌اندازی گیر کردی، یا می‌خواهی همین ربات برای کسب‌وکارت نصب و شخصی‌سازی شود، از صفحهٔ تماس با ما پیام بده.

سورس‌های دیگر ربات تلگرام