سادهترین ربات تلگرام که به کاربر خوشآمد میگوید و پیامهایش را تکرار میکند؛ بهترین نقطهٔ شروع برای یادگرفتن اینکه یک ربات تلگرام از درون چطور کار میکند.
سوال یا راهنمایی لازم داری؟ از صفحهٔ تماس با ما بپرس.
این ربات وقتی کاربر دستور /start را بزند به او خوشآمد میگوید و بعد از آن هر پیام متنی که کاربر بفرستد، همان را برایش تکرار میکند. بهترین نقطهٔ شروع برای یادگیری ساختار یک ربات تلگرام است.
این مراحل را بهترتیب انجام بده تا ربات روی سیستم خودت یا سرور بالا بیاید. داخل فایل ZIP یک راهنمای README هم هست.
این همان کدی است که داخل فایل ZIP هم هست. فقط یادت باشد مقدار TOKEN را با توکن رباتت عوض کنی.
# -*- 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()
با چند تغییر کوچک، ربات را مخصوص کسبوکار خودت کن.
متن داخل 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 بساز تا ربات بعد از خطا یا ریاستارت سرور خودش دوباره روشن شود.
[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
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 پیام بدهید یا با شمارهٔ ۰۹۱۲۲۸۷۴۸۶۲ تماس بگیرید؛ اگر نسخهٔ اختصاصی همین ربات را برای کسبوکارتان بخواهید هم همین مسیر را استفاده کنید.
اگر در راهاندازی گیر کردی، یا میخواهی همین ربات برای کسبوکارت نصب و شخصیسازی شود، از صفحهٔ تماس با ما پیام بده.