این مقاله سومین و آخرین بخش از مجموعهی آموزش ساخت ربات روی پلتفرمهای بومی ایرانه — اگه دو بخش قبلی رو ندیدید، میتونید آموزش ساخت ربات بله و آموزش ساخت ربات ایتا رو هم مطالعه کنید. اما اگه فقط دنبال روبیکا هستید، مستقیم بریم سراغش: در این راهنما از دریافت توکن تا ارسال پیام و افزودن دکمههای شیشهای تعاملی رو قدمبهقدم یاد میگیرید.
فهرست مطالب
- ربات روبیکا چیست و چرا بسازیم؟
- پیشنیازها
- مرحله ۱: ساخت ربات و دریافت توکن از باتفادر
- مرحله ۲: آشنایی با ساختار API روبیکا
- مرحله ۳: تست اولیه با getMe
- مرحله ۴: ارسال اولین پیام با پایتون
- مرحله ۵: افزودن دکمههای شیشهای (Inline Keypad)
- مرحله ۶: دریافت پیامهای ورودی
- جدول متدهای پرکاربرد
- اشتباهات رایج
- سوالات متداول
ربات روبیکا چیست و چرا بسازیم؟
ربات روبیکا یک حساب خودکار روی پیامرسان روبیکاست که از طریق Rubika Bot API رسمی میتونه پیام دریافت کنه، پاسخ بده، دکمهی تعاملی نمایش بده و گروه/کانال رو مدیریت کنه. روبیکا از سه پلتفرم بومی ایران، رسمیترین و کاملترین API رو داره — از جمله پشتیبانی گسترده از کیبورد شیشهای (Inline Keypad) که تجربهی کاربری رو بهشدت حرفهایتر میکنه.
نمونهی واقعی؟ محصول «ربات ضدلینک و مدیریت گروه روبیکا» ما دقیقاً با همین API ساخته شده و همین الان یکی از پرفروشترین و پراستفادهترین سورسهای سایت ماست. کاربردهای رایج دیگه:
- مدیریت گروه (حذف خودکار لینک، خوشآمدگویی، مسدودسازی)
- پاسخگویی خودکار به مشتریان با منوی دکمهای
- اطلاعرسانی سفارش و موجودی فروشگاه
- رباتهای آموزشی یا نظرسنجی تعاملی
پیشنیازها
- آشنایی پایه با پایتون
- پایتون ۳.۷ به بالا و کتابخانهی
requests(نصب باpip install requests) - یک حساب کاربری فعال در روبیکا
مرحله ۱: ساخت ربات و دریافت توکن از باتفادر
- در اپلیکیشن روبیکا، حساب باتفادر (BotFather) را جستوجو و گفتوگو را شروع کنید.
- دستور ساخت ربات جدید را ارسال و یک نام برای رباتتان انتخاب کنید.
- باتفادر یک توکن اختصاصی در اختیارتان میگذارد — این توکن کلید تمام درخواستهای شما به API خواهد بود.
- توکن را جایی امن نگه دارید و هرگز در کد عمومی (مثل گیتهاب) منتشر نکنید.
مرحله ۲: آشنایی با ساختار API روبیکا
تمام درخواستهای Rubika Bot API با این ساختار و از نوع POST ارسال میشوند:
https://botapi.rubika.ir/v3/YOUR_TOKEN/METHOD_NAMEبرخلاف بله که هم GET و هم POST را میپذیرد، روبیکا مشخصاً از درخواستهای POST با بدنهی JSON (Content-Type: application/json) استفاده میکند.
مرحله ۳: تست اولیه با getMe
قبل از هر چیز، با متد getMe صحت توکن رو بررسی کنید:
import requests
TOKEN = "YOUR_TOKEN"
BASE_URL = f"https://botapi.rubika.ir/v3/{TOKEN}"
def get_me():
response = requests.post(f"{BASE_URL}/getMe")
return response.json()
print(get_me())پاسخ موفق شامل اطلاعات پایهی رباتتان (نام، شناسه و...) خواهد بود.
مرحله ۴: ارسال اولین پیام با پایتون
def send_message(chat_id, text):
payload = {
"chat_id": chat_id,
"text": text
}
response = requests.post(f"{BASE_URL}/sendMessage", json=payload)
return response.json()
send_message("YOUR_CHAT_ID", "سلام! این پیام از طریق ربات روبیکای شما ارسال شده ✅")نکته: چون روبیکا بدنهی درخواست را بهصورت JSON میخواهد، در کتابخانهی requests حتماً از پارامتر json= استفاده کنید، نه data=.
مرحله ۵: افزودن دکمههای شیشهای (Inline Keypad)
قابلیتی که روبیکا رو از رقبا متمایز میکنه، پشتیبانی قوی و مستندش از دکمههای شیشهایه:
def send_message_with_keypad(chat_id, text):
payload = {
"chat_id": chat_id,
"text": text,
"inline_keypad": {
"rows": [
{
"buttons": [
{"id": "100", "type": "Simple", "button_text": "مشاهده سایت"}
]
},
{
"buttons": [
{"id": "101", "type": "Simple", "button_text": "پشتیبانی"},
{"id": "102", "type": "Simple", "button_text": "لیست محصولات"}
]
}
]
}
}
response = requests.post(f"{BASE_URL}/sendMessage", json=payload)
return response.json()هر ردیف (row) میتواند چند دکمه داشته باشد. وقتی کاربر روی یکی از دکمهها بزند، همان id که تعیین کردهاید به رباتتان برمیگردد تا بر اساسش پاسخ مناسب را برنامهریزی کنید.
مرحله ۶: دریافت پیامهای ورودی
برای اینکه ربات به پیام کاربران واکنش نشان بدهد، دو روش در دسترس دارید:
- Polling (سادهتر برای شروع): با متد
getUpdatesبهصورت دورهای از سرور روبیکا میپرسید آیا پیام تازهای رسیده یا نه. - Webhook (برای رباتهای پرترافیک): یک آدرس Endpoint روی سرور خودتان تعریف میکنید و از تنظیمات بات در باتفادر مشخص میکنید؛ از آن پس هر رویداد تازه (پیام جدید، شروع/توقف ربات توسط کاربر و…) مستقیماً به آن آدرس ارسال میشود.
برای شروع و یادگیری، Polling سادهتر است؛ برای رباتهای تجاری با ترافیک بالا (مثل همون ربات ضدلینک گروه)، Webhook عملکرد بهمراتب بهتری میدهد.
جدول متدهای پرکاربرد
| متد | کاربرد |
|---|---|
getMe | تست صحت توکن ربات |
sendMessage | ارسال پیام متنی یا همراه با دکمه |
sendLocation | ارسال موقعیت مکانی |
sendContact | ارسال اطلاعات تماس |
getChat | دریافت اطلاعات یک چت |
forwardMessage | فوروارد پیام بین چتها |
editMessageText | ویرایش متن پیام ارسالشده |
getUpdates | دریافت پیامهای تازه (روش Polling) |
اشتباهات رایج
- استفاده از
data=بهجایjson=— چون روبیکا بدنهی JSON میخواهد، ارسال داده به شکل فرم معمولی باعث خطا میشود. - فراموشکردن نوع درخواست — همهی متدها باید POST باشند؛ GET پاسخ نمیدهد.
- id تکراری برای دکمهها — هر دکمه در inline_keypad باید یک
idیکتا داشته باشد، وگرنه تشخیص کلیک کاربر مبهم میشود. - افشای توکن در کد عمومی — همیشه از متغیر محیطی برای نگهداری توکن استفاده کنید.
- انتظار پاسخ آنی بدون فعالبودن سرور — چه Polling چه Webhook، ربات باید مدام در حال اجرا باشد.
سوالات متداول
آیا ساخت ربات روبیکا رایگان است؟
بله، استفاده از Rubika Bot API رایگان است؛ تنها هزینهی احتمالی مربوط به میزبانی برای اجرای دائمی رباتتان است.
تفاوت ربات روبیکا با ربات بله چیست؟
هر دو از باتفادر داخل اپ ساخته میشوند و ساختار مشابهی دارند؛ تفاوت اصلی در جزئیات فنی (مثل الزام JSON در روبیکا) و عمق پشتیبانی از دکمههای شیشهای است که در روبیکا مستندتر و کاملتر است.
آیا برای ساخت ربات روبیکا باید برنامهنویسی بلد باشم؟
برای ساخت ربات اختصاصی، آشنایی پایه با پایتون یا زبانی مشابه لازم است. اگر نمیخواهید خودتان کدنویسی کنید، میتوانید از سورسهای آمادهی ربات روبیکا ما استفاده کنید — از جمله همان ربات ضدلینک و مدیریت گروه که در همین مقاله مثالش رو دیدید.
Polling بهتر است یا Webhook؟
برای یادگیری و تست، Polling سادهتر است. برای رباتهای تجاری با حجم پیام بالا، Webhook تأخیر کمتر و کارایی بهتری دارد.
جمعبندی
حالا میدونید چطور یک ربات روبیکا از صفر بسازید، پیام ارسال کنید و دکمهی تعاملی اضافه کنید. اگه میخواید سریعتر شروع کنید یا دنبال یک ربات حرفهای و تستشده هستید، سورسهای آمادهی ربات روبیکا رو ببینید، یا برای توسعهی اختصاصی با ما در تماس باشید.
نظرات کاربران
فقط نظرات تاییدشده مدیر نمایش داده میشود.