سایر بخش‌ها

مقاله

آموزش ساخت ربات بله از صفر تا صد (۲۰۲۶) | راهنمای گام‌به‌گام

یاد بگیرید چطور با پایتون یک ربات بله از صفر بسازید — از دریافت توکن با بات‌فادر تا ارسال پیام، دکمه‌های شیشه‌ای و راه‌اندازی وبهوک، همراه با کد کامل و قابل اج…

آموزش ساخت ربات بله از صفر تا صد (۲۰۲۶) | راهنمای گام‌به‌گام

اگر می‌خوای برای کسب‌وکارت، گروه یا کانالت روی بله یک دستیار خودکار داشته باشی، این راهنما دقیقاً برای توئه. در این مقاله قدم‌به‌قدم یاد می‌گیری چطور یک ربات بله از صفر بسازی؛ از گرفتن توکن گرفته تا نوشتن اولین خط کد و راه‌اندازی وبهوک روی سرور.

نیازی به دانش پیشرفته نداری؛ اگر پایتون رو در حد مبتدی بلد باشی، تا انتهای این مقاله یک ربات واقعی و کارکننده خواهی داشت.

فهرست مطالب

ربات بله چیست و چه کاربردی داره؟

ربات بله یک حساب خودکار روی پیام‌رسان بله است که با استفاده از Bale Bot API می‌تونه پیام دریافت کنه، پاسخ بده، فایل ارسال کنه و حتی درخواست پرداخت بفرسته. چون API بله بر پایه همون معماری معروف ربات‌های تلگرام طراحی شده، اگر قبلاً با ساخت ربات تلگرام آشنا باشی، یادگیری این مسیر برات خیلی سریع‌تر پیش می‌ره.

رایج‌ترین کاربردهای ربات بله عبارتند از:

  • پاسخ‌گویی خودکار به مشتریان (پشتیبانی آنلاین)
  • اطلاع‌رسانی سفارش، قیمت یا موجودی فروشگاه
  • مدیریت گروه (حذف خودکار لینک، خوش‌آمدگویی به اعضای جدید)
  • دریافت پرداخت مستقیم داخل بله از طریق ربات
  • ارسال محتوای آموزشی یا خبری به‌صورت زمان‌بندی‌شده

پیش‌نیازهای ساخت ربات بله

قبل از شروع، این موارد رو آماده داشته باش:

  • آشنایی پایه با پایتون (کافیه بدونی متغیر و تابع چیه)
  • پایتون نسخه ۳.۷ به بالا روی سیستم یا سرورت نصب باشه
  • کتابخانه requests (با دستور pip install requests نصب می‌شه)
  • یک حساب کاربری فعال در بله
  • برای بخش وبهوک: یک هاست یا سرور با آدرس HTTPS معتبر

مرحله ۱: ساخت ربات و دریافت توکن از بات‌فادر

هر ربات بله با یک توکن شناسایی می‌شه؛ این توکن رو باید از «بات‌فادر» (Bot Father) دریافت کنی:

  1. در اپلیکیشن بله، حساب botfather@ را جست‌وجو و گفت‌وگو را شروع کن.
  2. دستور ساخت ربات جدید را ارسال کن و یک نام و نام‌کاربری برای ربات انتخاب کن (نام‌کاربری باید با bot تمام شود).
  3. بات‌فادر یک توکن با فرمتی شبیه 123456:ABC-DEF1234ghIkl-zyx68W2v1u123ew12 برایت ارسال می‌کند.
  4. این توکن را جایی امن ذخیره کن و آن را با کسی به اشتراک نگذار — هرکسی این توکن را داشته باشد، کنترل کامل ربات را در اختیار دارد.

مرحله ۲: آشنایی با ساختار API بله

تمام درخواست‌های Bale Bot API با این ساختار ارسال می‌شوند:

https://tapi.bale.ai/botYOUR_TOKEN/METHOD_NAME

به‌جای YOUR_TOKEN توکن خودت و به‌جای METHOD_NAME نام متد (مثل sendMessage) را قرار بده. درخواست‌ها هم با GET و هم با POST قابل ارسال هستند و پاسخ همیشه یک شیء JSON با فیلد ok است.

برای اطمینان از صحت توکن، ابتدا متد ساده‌ی getMe را امتحان کن:

import requests

TOKEN = "YOUR_TOKEN"
url = f"https://tapi.bale.ai/bot{TOKEN}/getMe"

response = requests.get(url)
print(response.json())

اگر توکن درست باشد، پاسخی شامل نام و شناسه‌ی ربات دریافت می‌کنی و مقدار فیلد ok برابر true خواهد بود.

مرحله ۳: نوشتن اولین ربات با پایتون

ساده‌ترین روش دریافت پیام‌ها، متد getUpdates است. کد زیر یک «ربات پاسخگو» می‌سازد که به هر پیام، همان متن را برمی‌گرداند:

import requests
import time

TOKEN = "YOUR_TOKEN"
BASE_URL = f"https://tapi.bale.ai/bot{TOKEN}"

def get_updates(offset=None):
    params = {}
    if offset:
        params["offset"] = offset
    response = requests.get(f"{BASE_URL}/getUpdates", params=params)
    return response.json()

def send_message(chat_id, text):
    payload = {"chat_id": chat_id, "text": text}
    requests.post(f"{BASE_URL}/sendMessage", data=payload)

def main():
    offset = None
    print("ربات در حال اجراست...")
    while True:
        updates = get_updates(offset)
        if updates.get("ok"):
            for update in updates["result"]:
                offset = update["update_id"] + 1
                message = update.get("message")
                if message and "text" in message:
                    chat_id = message["chat"]["id"]
                    text = message["text"]
                    if text == "/start":
                        send_message(chat_id, "سلام! به ربات من خوش اومدی 👋")
                    else:
                        send_message(chat_id, f"شما نوشتید: {text}")
        time.sleep(2)

if __name__ == "__main__":
    main()

نکته‌ی مهم: مقدار offset را بعد از هر آپدیت به‌روزرسانی کن، وگرنه ربات همان پیام‌های قبلی را دوباره پردازش می‌کند.

مرحله ۴: افزودن دکمه‌های شیشه‌ای (Inline Keyboard)

برای تجربه‌ی کاربری حرفه‌ای‌تر، می‌تونی به پیام‌هات دکمه اضافه کنی:

import requests
import json

def send_message_with_keyboard(chat_id, text):
    keyboard = {
        "inline_keyboard": [
            [
                {"text": "مشاهده سایت", "url": "https://source360.ir"},
                {"text": "پشتیبانی", "callback_data": "support"}
            ]
        ]
    }
    payload = {
        "chat_id": chat_id,
        "text": text,
        "reply_markup": json.dumps(keyboard)
    }
    requests.post(f"{BASE_URL}/sendMessage", data=payload)

هر دکمه یا یک url برای باز کردن لینک دارد یا یک callback_data که وقتی کاربر روی دکمه بزند، به ربات ارسال می‌شود و می‌تونی داخل حلقه‌ی دریافت آپدیت‌ها پردازشش کنی.

مرحله ۵: وبهوک چیست و چطور راه‌اندازی می‌شه؟

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

برای فعال‌سازی، کافیه یک‌بار این آدرس را (با آدرس HTTPS خودت) در مرورگر باز کنی یا با curl بزنی:

https://tapi.bale.ai/botYOUR_TOKEN/setWebhook?url=https://yourdomain.com/bale-webhook

نکات مهم درباره‌ی وبهوک:

  • آدرس باید حتماً HTTPS معتبر باشه (نه HTTP ساده)
  • فقط پورت‌های ۴۴۳ و ۸۸ پشتیبانی می‌شوند
  • بله برای هر پیام جدید، یک درخواست POST حاوی JSON به همین آدرس ارسال می‌کند

نمونه‌ی دریافت‌کننده‌ی وبهوک با Flask:

from flask import Flask, request
import requests

app = Flask(__name__)
TOKEN = "YOUR_TOKEN"
BASE_URL = f"https://tapi.bale.ai/bot{TOKEN}"

@app.route("/bale-webhook", methods=["POST"])
def webhook():
    update = request.get_json()
    message = update.get("message")
    if message and "text" in message:
        chat_id = message["chat"]["id"]
        text = message["text"]
        requests.post(f"{BASE_URL}/sendMessage", data={
            "chat_id": chat_id,
            "text": f"پیام شما دریافت شد: {text}"
        })
    return "OK", 200

if __name__ == "__main__":
    app.run(port=5000)

💡 اگر تنظیم سرور و SSL برایت زمان‌بره یا نمی‌خوای خودت درگیرش بشی، تیم ما می‌تونه وبهوک ربات بله‌ت رو برات راه‌اندازی کنه.

مرحله ۶: میزبانی و اجرای دائمی ربات

برای این‌که ربات همیشه فعال بمونه (چه با getUpdates و چه با وبهوک)، باید روی یک سرور دائمی اجرا بشه، نه فقط روی سیستم شخصی‌ات. رایج‌ترین گزینه‌ها:

  • VPS (مثل سرورهای مبتنی بر لینوکس) — کنترل کامل، مناسب ربات‌های حرفه‌ای
  • هاست اشتراکی با پشتیبانی پایتون — گزینه‌ی مقرون‌به‌صرفه برای شروع
  • اجرای ربات به‌صورت Service یا با ابزارهایی مثل systemd یا supervisor تا بعد از قطعی یا ری‌استارت سرور، خودش دوباره اجرا بشه

جدول متدهای پرکاربرد API بله

متدکاربرد
getMeتست صحت توکن ربات
sendMessageارسال پیام متنی
sendPhoto / sendDocumentارسال تصویر یا فایل
editMessageTextویرایش پیام ارسال‌شده
deleteMessageحذف پیام (تا ۴۸ ساعت پس از ارسال)
banChatMemberمسدودسازی عضو در گروه (برای مدیریت گروه)
pinChatMessageسنجاق‌کردن پیام در گروه
sendInvoiceارسال درخواست پرداخت مستقیم در بله

اشتباهات رایج مبتدیان

  • فراموش‌کردن به‌روزرسانی offset — باعث می‌شه ربات پیام‌های قبلی رو بارها پردازش کنه.
  • استفاده از HTTP به‌جای HTTPS برای وبهوک — بله فقط آدرس‌های HTTPS معتبر رو می‌پذیره.
  • افشای توکن در کد عمومی (مثل گیت‌هاب) — همیشه توکن رو در متغیر محیطی (environment variable) نگه دار، نه مستقیم داخل کد.
  • عدم مدیریت خطا — همیشه فیلد ok پاسخ رو چک کن قبل از استفاده از result.
  • اجرای ربات فقط روی سیستم شخصی — با خاموش‌شدن سیستم یا قطع اینترنت، ربات هم از کار می‌افته.

سوالات متداول

آیا ساخت ربات بله رایگان است؟

بله، استفاده از Bale Bot API رایگان است. تنها هزینه‌ی احتمالی مربوط به میزبانی (هاست یا VPS) برای اجرای دائمی رباته.

آیا برای ساخت ربات بله حتماً باید برنامه‌نویسی بلد باشم؟

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

تفاوت ربات بله با ربات تلگرام چیست؟

ساختار API این دو بسیار شبیه هم است، اما بله به‌عنوان پیام‌رسان بومی، قابلیت‌های اختصاصی مثل درخواست پرداخت مستقیم داخل ربات را هم ارائه می‌دهد.

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

بله. چه از روش getUpdates استفاده کنی و چه از وبهوک، ربات باید مدام در حال اجرا باشد تا پیام‌ها رو از دست نده.

ساخت یک ربات ساده چقدر زمان می‌برد؟

یک ربات ساده‌ی پاسخگو (مثل نمونه‌ی این مقاله) را می‌توان در کمتر از یک ساعت راه‌اندازی کرد. ربات‌های حرفه‌ای با پنل مدیریت، دیتابیس و درگاه پرداخت زمان بیشتری نیاز دارند.

جمع‌بندی

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

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

نظرات کاربران

فقط نظرات تاییدشده مدیر نمایش داده می‌شود.

0 نظر تاییدشده
هنوز نظری برای این مطلب منتشر نشده است.