در این پست، نحوه ساخت ربات در پیام‌رسان ایرانی «بله» را به‌طور کامل آموزش می‌دهیم و یک نمونه سورس کد عملیاتی نیز ارائه می‌کنیم.

مراحل ساخت ربات در پیام‌رسان بله

۱. دریافت توکن (Token) ربات

  1. اپلیکیشن بله را باز کنید
  2. به جستجو رفته و @botfather را پیدا کنید
  3. دستور /newbot را ارسال کنید
  4. نام ربات و یوزرنیم منحصربه‌فرد انتخاب کنید
  5. توکن دریافتی را در جای امن ذخیره کنید

۲. راه‌اندازی محیط توسعه

برای شروع، نیاز به یک سرور یا هاست دارید که بتوانید کدهای خود را روی آن اجرا کنید. می‌توانید از سرورهای ابری یا هاست‌های معمولی استفاده کنید.

۳. نمونه کد ساده ربات با پایتون

python

import requests
import json
import time

class BaleBot:
    def __init__(self, token):
        self.token = token
        self.base_url = f"https://tapi.bale.ai/bot{token}/"
    
    def get_updates(self, offset=None):
        url = self.base_url + "getUpdates"
        params = {"offset": offset, "timeout": 30}
        response = requests.get(url, params=params)
        return response.json()
    
    def send_message(self, chat_id, text):
        url = self.base_url + "sendMessage"
        payload = {
            "chat_id": chat_id,
            "text": text
        }
        response = requests.post(url, json=payload)
        return response.json()
    
    def start(self):
        offset = None
        print("ربات در حال اجراست...")
        
        while True:
            updates = self.get_updates(offset)
            
            if "result" in updates:
                for update in updates["result"]:
                    offset = update["update_id"] + 1
                    
                    if "message" in update:
                        message = update["message"]
                        chat_id = message["chat"]["id"]
                        text = message.get("text", "")
                        
                        if text:
                            if text == "/start":
                                self.send_message(chat_id, "سلام! به ربات خوش آمدید.")
                            elif text == "/help":
                                self.send_message(chat_id, "دستورات موجود:\n/start - شروع کار\n/help - راهنما\n/about - درباره ربات")
                            elif text == "/about":
                                self.send_message(chat_id, "این یک ربات نمونه برای آموزش ساخت ربات در بله است.")
                            else:
                                self.send_message(chat_id, f"شما نوشتید: {text}")
            
            time.sleep(1)

# نحوه استفاده از ربات
if __name__ == "__main__":
    # توکن ربات خود را اینجا قرار دهید
    TOKEN = "توکن_ربات_شما_اینجا"
    bot = BaleBot(TOKEN)
    bot.start()

۴. نمونه کد ساده ربات با Node.js

javascript

const axios = require('axios');

class BaleBot {
    constructor(token) {
        this.token = token;
        this.baseUrl = `https://tapi.bale.ai/bot${token}/`;
    }

    async getUpdates(offset = null) {
        try {
            const response = await axios.get(`${this.baseUrl}getUpdates`, {
                params: { offset, timeout: 30 }
            });
            return response.data;
        } catch (error) {
            console.error('Error getting updates:', error);
            return null;
        }
    }

    async sendMessage(chatId, text) {
        try {
            const response = await axios.post(`${this.baseUrl}sendMessage`, {
                chat_id: chatId,
                text: text
            });
            return response.data;
        } catch (error) {
            console.error('Error sending message:', error);
            return null;
        }
    }

    async start() {
        let offset = null;
        console.log('ربات در حال اجراست...');

        while (true) {
            const updates = await this.getUpdates(offset);
            
            if (updates && updates.result) {
                for (const update of updates.result) {
                    offset = update.update_id + 1;
                    
                    if (update.message) {
                        const chatId = update.message.chat.id;
                        const text = update.message.text || '';
                        
                        if (text) {
                            if (text === '/start') {
                                await this.sendMessage(chatId, 'سلام! به ربات خوش آمدید.');
                            } else if (text === '/help') {
                                await this.sendMessage(chatId, 'دستورات موجود:\n/start - شروع کار\n/help - راهنما\n/about - درباره ربات');
                            } else if (text === '/about') {
                                await this.sendMessage(chatId, 'این یک ربات نمونه برای آموزش ساخت ربات در بله است.');
                            } else {
                                await this.sendMessage(chatId, `شما نوشتید: ${text}`);
                            }
                        }
                    }
                }
            }
            
            await new Promise(resolve => setTimeout(resolve, 1000));
        }
    }
}

// نحوه استفاده
// const TOKEN = 'توکن_ربات_شما_اینجا';
// const bot = new BaleBot(TOKEN);
// bot.start();

امکانات پیشرفته‌تر

۱. اضافه کردن دکمه شیشه‌ای

python

def send_keyboard(self, chat_id, text):
    url = self.base_url + "sendMessage"
    keyboard = {
        "keyboard": [
            [{"text": "دکمه ۱"}],
            [{"text": "دکمه ۲"}, {"text": "دکمه ۳"}]
        ],
        "resize_keyboard": True
    }
    payload = {
        "chat_id": chat_id,
        "text": text,
        "reply_markup": keyboard
    }
    response = requests.post(url, json=payload)
    return response.json()

۲. دریافت انواع مختلف پیام

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

نکات مهم

  1. امنیت: هرگز توکن ربات خود را در کدهای عمومی قرار ندهید
  2. مقیاس‌پذیری: برای ربات‌های بزرگ‌تر از دیتابیس استفاده کنید
  3. خطاها: همیشه خطاها را مدیریت کنید
  4. مستندات: مستندات رسمی بله را مطالعه کنید

جمع‌بندی

ساخت ربات در پیام‌رسان بله فرآیندی ساده و جذاب است. با استفاده از کدهای ارائه شده در این آموزش، می‌توانید اولین ربات خود را در کمتر از ۱۵ دقیقه راه‌اندازی کنید.