چگونه با پایتون یک ربات تلگرام بسازیم؟

# چگونه با پایتون یک ربات تلگرام بسازیم؟

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

## مقدمه

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

## پیش‌نیازها

قبل از شروع، اطمینان حاصل کنید که موارد زیر را دارا هستید:

* **پایتون:** نسخه 3.6 یا بالاتر پایتون بر روی سیستم شما نصب شده باشد.
* **pip:** پکیج منیجر pip برای نصب کتابخانه‌های مورد نیاز.
* **ویرایشگر کد:** یک ویرایشگر کد مانند VS Code، PyCharm یا Sublime Text.

## گام اول: ایجاد یک ربات تلگرامی

1. **با بات‌فادر (BotFather) در تلگرام ارتباط برقرار کنید:** در تلگرام، بات‌فادر (@BotFather) را جستجو کنید و استارت بزنید.
2. **ایجاد ربات جدید:** دستور `/newbot` را ارسال کنید.
3. **انتخاب نام:** نامی برای ربات خود انتخاب کنید (به عنوان مثال: MyAwesomeBot).
4. **انتخاب نام کاربری:** یک نام کاربری برای ربات خود انتخاب کنید که با `bot` ختم شود (به عنوان مثال: MyAwesomeBot_bot).
5. **دریافت توکن (Token):** بات‌فادر پس از ایجاد ربات، یک توکن به شما می‌دهد. این توکن برای ارتباط با API تلگرام ضروری است. آن را در جایی امن ذخیره کنید.


BotFather Chat

## گام دوم: نصب کتابخانه‌های پایتون

برای **برنامه نویسی پایتون** ربات تلگرام، به کتابخانه `python-telegram-bot` نیاز داریم. این کتابخانه به ما کمک می‌کند تا به راحتی با API تلگرام ارتباط برقرار کنیم. برای نصب این کتابخانه، دستور زیر را در ترمینال وارد کنید:

bash
pip install python-telegram-bot

## گام سوم: نوشتن کد پایتون

یک فایل پایتون (مثلاً `bot.py`) ایجاد کنید و کد زیر را در آن قرار دهید. به جای `YOUR_TOKEN`، توکن ربات خود را وارد کنید:

python
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id=update.effective_chat.id, text=”من یک ربات تلگرامی هستم!”)

if __name__ == ‘__main__’:
application = ApplicationBuilder().token(‘YOUR_TOKEN’).build()

start_handler = CommandHandler(‘start’, start)
application.add_handler(start_handler)

application.run_polling()

**توضیحات کد:**

* `from telegram import Update`: کلاس `Update` اطلاعات مربوط به پیام‌ها و به‌روزرسانی‌های تلگرام را در خود نگه می‌دارد.
* `from telegram.ext import ApplicationBuilder, CommandHandler, ContextTypes`: این ماژول‌ها برای ساخت و مدیریت ربات استفاده می‌شوند.
* `async def start(update: Update, context: ContextTypes.DEFAULT_TYPE)`: این تابع، تابع پاسخ‌دهنده به دستور `/start` است. زمانی که کاربر این دستور را ارسال می‌کند، ربات پیامی را برای او ارسال می‌کند.
* `application = ApplicationBuilder().token(‘YOUR_TOKEN’).build()`: این خط، یک شیء `Application` می‌سازد که ربات را مدیریت می‌کند. توکن ربات در اینجا وارد می‌شود.
* `start_handler = CommandHandler(‘start’, start)`: این خط، یک هندلر (handler) برای دستور `/start` ایجاد می‌کند که تابع `start` را فراخوانی می‌کند.
* `application.add_handler(start_handler)`: این خط، هندلر را به ربات اضافه می‌کند.
* `application.run_polling()`: این خط، ربات را به حالت فعال (polling) در می‌آورد تا پیام‌ها و دستورات را دریافت کند.

## گام چهارم: اجرای ربات

برای اجرای ربات، ترمینال را باز کنید و به دایرکتوری‌ای که فایل `bot.py` در آن قرار دارد بروید. سپس دستور زیر را اجرا کنید:

bash
python bot.py

اگر همه چیز به درستی انجام شده باشد، ربات شما شروع به کار می‌کند و منتظر دریافت پیام‌ها خواهد بود. به تلگرام بروید و با ربات خود چت کنید. دستور `/start` را ارسال کنید تا پاسخ ربات را ببینید.

## مثال‌های بیشتر: پاسخ به پیام‌ها و ارسال تصاویر

### پاسخ به پیام‌های متنی

برای پاسخ به پیام‌های متنی، می‌توانید از کد زیر استفاده کنید:

python
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_message(chat_id=update.effective_chat.id, text=update.message.text)

if __name__ == ‘__main__’:
# … (کد قبلی)
echo_handler = MessageHandler(filters.TEXT & (~filters.COMMAND), echo)
application.add_handler(echo_handler)
# …

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

### ارسال تصاویر

برای ارسال تصاویر، می‌توانید از کد زیر استفاده کنید:

python
async def send_image(update: Update, context: ContextTypes.DEFAULT_TYPE):
await context.bot.send_photo(chat_id=update.effective_chat.id, photo=open(‘image.png’, ‘rb’))

if __name__ == ‘__main__’:
# … (کد قبلی)
image_handler = CommandHandler(‘image’, send_image)
application.add_handler(image_handler)
# …

در این کد، تابع `send_image` یک تصویر با نام `image.png` را از دایرکتوری فعلی خوانده و برای کاربر ارسال می‌کند. برای استفاده از این قابلیت، ابتدا یک فایل تصویر با نام `image.png` در کنار فایل `bot.py` قرار دهید و سپس دستور `/image` را در تلگرام ارسال کنید. **ربات تلگرام با پایتون** قادر است عملیات‌های بسیار متنوع‌تری را نیز انجام دهد.


Telegram bot sending image

## مدیریت خطاها

هنگام **برنامه نویسی پایتون** و **ساخت ربات تلگرام**، مدیریت خطاها بسیار مهم است. برای مدیریت خطاها، می‌توانید از بلوک‌های `try…except` استفاده کنید:

python
async def error_handler(update: Update, context: ContextTypes.DEFAULT_TYPE):
print(f’Update {update} caused error {context.error}’)

if __name__ == ‘__main__’:
# … (کد قبلی)
application.add_error_handler(error_handler)
# …

این کد، یک هندلر برای خطاهای احتمالی تعریف می‌کند و اطلاعات مربوط به خطا را در کنسول چاپ می‌کند.

## نکات مهم

* **امنیت توکن:** توکن ربات خود را در جایی امن نگهداری کنید و آن را با کسی به اشتراک نگذارید. اگر توکن شما لو رفت، می‌توانید آن را از طریق بات‌فادر ریست کنید.
* **به‌روزرسانی کتابخانه:** همواره کتابخانه `python-telegram-bot` را به آخرین نسخه به‌روز نگه دارید تا از آخرین امکانات و رفع اشکالات بهره‌مند شوید.
* **مستندات:** برای اطلاعات بیشتر در مورد API تلگرام و کتابخانه `python-telegram-bot`، به مستندات رسمی مراجعه کنید.
* **استفاده از وب‌هوک‌ها:** برای ربات‌های بزرگ و پرکاربرد، استفاده از وب‌هوک‌ها به جای polling توصیه می‌شود. وب‌هوک‌ها باعث کاهش مصرف منابع و افزایش سرعت پاسخ‌دهی ربات می‌شوند.

## نتیجه‌گیری

در این آموزش، نحوه **ساخت ربات تلگرام** ساده با استفاده از **برنامه نویسی پایتون** را یاد گرفتیم. با استفاده از کتابخانه `python-telegram-bot`، می‌توانید به راحتی با API تلگرام ارتباط برقرار کرده و ربات‌های مختلفی ایجاد کنید. این ربات‌ها می‌توانند کارهای مختلفی از جمله ارسال پیام‌های خودکار، ارائه اطلاعات، بازی‌ها و موارد دیگر را انجام دهند. با **برنامه نویسی پایتون** و کمی خلاقیت، امکانات بی‌شماری برای **ساخت ربات تلگرام** وجود دارد. **آموزش ساخت ربات** در اینجا به پایان میرسد، امیدواریم از این مطلب استفاده لازم را برده باشید.