آموزش ساخت ربات تلگرام با پایتون (به همراه اسکرین شات و کدهای مورد نیاز)

How to Create A Telegram Bot Using Python

08 شهریور 1402
python-telegram-bot

فرقی نمی کند مهارت برنامه نویسی شما چقدر است، ما در این مقاله آموزش ساخت ربات تلگرام با پایتون را با جدیدترین آپدیت در اختیار شما قرار می دهیم.

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

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

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

مقدمه ای بر دنیای ربات های تلگرام: آشنایی با مبانی

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

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

به دنیای ربات های تلگرام خوش آمدید!

این ربات ها حساب های ویژه ای هستند که برای راه اندازی به شماره تلفن اضافی نیاز ندارند. آنها توسط هوش مصنوعی طراحی شده اند و برای انجام طیف گسترده ای از عملکردها، از مدیریت پیام های شما، زمان بندی وظایف، ارائه پشتیبانی مشتری و موارد دیگر طراحی شده اند.می توانید آنها را به عنوان دستیاران مجازی خود در نظر بگیرید که 24 ساعته و 7 روز هفته کار می کنند و تجربه ارتباطی شما را در تلگرام افزایش می دهند.

راهنمای گام به گام برای ایجاد ربات تلگرام: از مفهوم تا کدنویسی

اکنون که وارد دنیای جذاب ربات های تلگرام شده اید، زمان آن رسیده است که یک ربات تلگرام بسازید. چه بخواهید رباتی طراحی کنید که به پرسش های مشتری رسیدگی کند، وظایف را مدیریت کند یا بازی های سرگرم کننده با کاربران انجام دهد، این راهنمای گام به گام شما را در این فرآیند از مفهوم تا کدنویسی راهنمایی می کند.

BotFather تنها رباتی است که همه آنها را در تلگرام اداره می کند. این ابزار رسمی برای ایجاد ربات ها است و همچنین به شما امکان می دهد ربات های موجود خود را مدیریت کنید.

در اینجا یک راهنمای گام به گام برای ایجاد ربات جدید خود با استفاده از BotFather آورده شده است:

مرحله 1: چت با BotFather را شروع کنید

اپلیکیشن تلگرام خود را اجرا کنید و در نوار جستجو عبارت BotFather را جستجو کنید.

روی چت BotFather کلیک کنید، سپس روی "Start" یا "start/" کلیک کنید تا مکالمه شما شروع شود.

مرحله 2: یک ربات جدید ایجاد کنید

در چت با BotFather،"/newbot" را تایپ کنید یا دستور مربوطه را از لیست ارائه شده توسط BotFather انتخاب کنید.

BotFather پاسخ می دهد و از شما می خواهد که نامی برای ربات خود انتخاب کنید. نام ربات می تواند هر چیزی باشد و منحصر به فرد نیست، به این معنی که دو یا چند ربات می توانند یک نام مشترک داشته باشند.

مرحله 3: یک نام کاربری برای ربات خود انتخاب کنید

پس از انتخاب نام، BotFather از شما می خواهد که یک نام کاربری برای ربات خود انتخاب کنید. این نام باید به "bot" ختم شود (به عنوان مثال، 'examplebot') و باید در تلگرام منحصر به فرد باشد. اگر نام کاربری قبلا استفاده شده باشد، باید نام کاربری دیگری را انتخاب کنید. من نام  roxobot و نام کاربری roxousernamebot را برای آن انتخاب کرده ام.

مرحله 4: دریافت توکن

پس از این کار یک توکن توسط تلگرام برای شما ایجاد میشود. مطمئن شوید که این توکن را در جای مناسبی ذخیره کرده اید. پس از ایجاد username یا نام کاربری باید تصویر زیر را ببینید:

هنگامی که یک نام کاربری منحصر به فرد را انتخاب کردید، BotFather به شما تبریک می گوید و یک رمز برای ربات شما در اختیار شما قرار می دهد. این توکن مانند رمز عبور ربات شما است و برای ارسال درخواست به Bot API به آن نیاز دارید. مطمئن شوید که این رمز را ایمن نگه دارید و آن را با کسی به اشتراک ندهید.

BotFather همچنین لینکی به ربات شما نمایش می دهد (مانند t.me/yourbotname). می توانید از این لینک برای دسترسی مستقیم به ربات خود استفاده کنید.

مرحله 5: پیکربندی ربات 

می توانید ربات خود را با تنظیم توضیحات، اطلاعات و تصویر پروفایل با استفاده از دستورات مربوطه پیکربندی کنید.

با دستور setdescription یک توضیح برای ربات خود تعریف می کنیم.

سپس توضیح خود درباره ربات را مینویسیم. توضیحی که من اضافه کردم این است: "این یک بات آزمایشی برای روکسو است".

با دستور mybots/ میتوانید بات هایی که تاکنون ایجاد کرده اید را ببینید. با دستور setabouttext میتوان اینکه ربات درباره چیست را تعیین کرد.

setuserpic برای انتخاب عکس برای ربات است. اگر از این دستور استفاده کنیم از ما میخواهد عکس ربات خود را انتخاب کنیم.

یک caption برای عکس خود انتخاب می کنیم. بعد از این کار عکس ربات تغییر خواهد کرد.

BotFather همچنین مجموعه ای از دستورات دیگر را ارائه می دهد که به شما امکان می دهد ربات خود را به روش های مختلف مدیریت و پیکربندی کنید. به سادگی تایپ کردن '/' لیستی از تمام دستورات ممکن را به شما نشان می دهد.

اگر روی ربات خود کلیک کنیم باید تصویر زیر را ببینیم:

نحوه ساخت ربات تلگرام با پایتون 

پس از راه اندازی ربات خود با BotFather و به دست آوردن توکن منحصر به فرد خود، گام بعدی این است که دستان خود را با مقداری کدنویسی کثیف کنید. صرف نظر از زبان برنامه نویسی که استفاده می کنید، اصول یکسان است: شما می خواهید از توکن ربات خود برای درخواست به API ربات تلگرام استفاده کنید، که به ربات شما اجازه می دهد با کاربران تعامل داشته باشد.

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

مرحله 1: نصب کتابخانه python-telegram-bot

کتابخانه python-telegram-bot را با استفاده از pip نصب کنید. می توانید این کار را با اجرای pip install python-telegram-bot در ترمینال خود انجام دهید.

مرحله 2: کد نویسی

پس از نصب کتابخانه ها اکنون نوبت کدنویسی رسیده است. کدهای زیر را در فایلی که ایجاد کرده ایم قرار می دهیم:

from typing import Final
from telegram import Update
from telegram.ext import ApplicationBuilder, CommandHandler, MessageHandler, filters, ContextTypes

TOKEN: Final ="6473782708:AAGWQP3ukaBBvCNV5PP341k0xl95SUbieWg"
bot_username:Final ="@roxo_username_bot"

async def start_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("سلام به ربات روکسو خوش آمدی")

async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("چه کمکی نیاز داری؟")

async def custom_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("این یک فرمان آزمایشی است")


# response commands
def handle_response(text: str) -> str:
    proccessed: str=text.lower()

    if text in "hello":
        return "hi"

    if text in "how are you?":
        return "i am good"

    if text in "i love python":
        return "it's good for you"
    else:
        return "i dont' understand what you said"
    

async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE):
    message_type: str = update.message.chat.type
    text: str = update.message.text

    print(f'User ({update.message.chat.id}) in {message_type}: "{text}"')

    if message_type == 'group':
        if BOT_USERNAME in text:
            new_text: str = text.replace(BOT_USERNAME,'').strip()
            response: str = handle_response(new_text)
        else:
            return
    else:
        response: str = handle_response(text)

    print('Bot: ',response)
    await update.message.reply_text(response)


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

if __name__ == '__main__':
    print("start")
    app = ApplicationBuilder().token(TOKEN).build()

    app.add_handler(CommandHandler('start',start_command))
    app.add_handler(CommandHandler('help',help_command))
    app.add_handler(CommandHandler('custom',custom_command))

    app.add_handler(MessageHandler(filters.TEXT,handle_message))

    app.add_handler(error)

    print('Polling')
    app.run_polling(poll_interval=3)

مرحله 3: بررسی کد

برای سه کنترلر به نام های start_command ،help_command و custom_command ساخته ایم. این کنترلر ها در واقع سه کار را برای ربات انجام میدهند. start_command برای آغار کار ربات است. کد آن را در زیر بررسی کنید:

async def start_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("سلام به ربات روکسو خوش آمدی")

اگر ربات را راه اندازی کنیم و دستور start/ را در آن بنویسیم این کنترلر باعث می شود که پیغام "سلام به ربات روکسو خوش آمدی" را دریافت کنیم.

help_command برای کمک رسانی به کاربر است. هرگاه کاربر کمکی نیاز داشته باشد، اگر دستور help را بنویسد با پیغام "چه کمکی نیاز داری" مواجه میشود.
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("چه کمکی نیاز داری؟")

custom_command یک کنترلر آزمایشی است. با اجرای آن توسط کاربر با دستور custom/ پیغام "این یک فرمان آزمایشی است" دریافت خواهد شد.

async def custom_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("این یک فرمان آزمایشی است")

مرحله 4: کد ربات خود را اجرا کنید

در نهایت، می توانید کد ربات خود را اجرا کنید و ربات شما باید شروع به پاسخ دادن به پیام ها در تلگرام کند. برای اجرای کد خود، به دایرکتوری حاوی کد در ترمینال خود بروید و python your_script.py را اجرا کنید و نام your_script.py را با نام کد ربات خود جایگزین کنید.

python your_script.py

به یاد داشته باشید که ربات شما باید به طور مداوم در حال اجرا باشد تا بتواند به پیام ها پاسخ دهد، بنابراین اگر می خواهید ربات خود را همیشه در دسترس باشد، ممکن است بخواهید میزبانی ربات خود را روی یک سرور در نظر بگیرید. و تمام! اکنون شما یک ربات تلگرام با استفاده از پایتون نوشته اید.

آزمایش ربات خود: استراتژی های اعتبار سنجی و استقرار

بعد از اینکه ربات تلگرام خود را ساختید، مرحله مهم بعدی آزمایش آن است. اعتبار سنجی تضمین می کند که ربات شما همانطور که در نظر گرفته شده است کار می کند و مناطقی را برای بهبود بیشتر شناسایی می کند. در اینجا یک راهنمای گام به گام برای اعتبار سنجی و استراتژی های استقرار برای ربات تلگرام شما آورده شده است:

  1. آزمایش ربات خود به صورت لوکال

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

1.1 تست عملکردی: این شامل ارسال دستورات مختلف به ربات شما و تایید پاسخ صحیح آن است.

1.2 تست خطا: این شامل ارسال ورودی نادرست یا غیرمنتظره به ربات شما و مشاهده نحوه پاسخگویی است.

  1. دیپلوی ربات

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

2.1 انتخاب یک سرویس هاست: گزینه های مختلفی برای هاست ربات شما وجود دارد، مانند سرویس های مبتنی بر ابر مانند خدمات وب آمازون، Google Cloud یا Heroku.

2.2 راه اندازی سرور: هنگامی که یک سرویس هاست را انتخاب کردید، باید محیط سرور خود را تنظیم کنید.

2.3 استقرار ربات خود: کد ربات خود را در سرور آپلود کرده و کد را شروع کنید.

  1. تست و به روز رسانی مداوم

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

به هر بازخوردی از کاربران توجه کنید و به طور منظم ربات خود را برای رفع اشکالات، بهبود عملکرد و افزودن ویژگی های جدید به روز کنید.

3.1 نظارت و ثبت گزارش: اجرای نظارت و ثبت گزارش برای ربات شما می تواند به شما کمک کند عملکرد آن را پیگیری کرده و هر گونه مشکل را شناسایی کنید. این می تواند شامل خطاهای ثبت نام، ردیابی آمار استفاده و نظارت بر سلامت سرور باشد.

3.2 به روز رسانی های منظم: مانند هر نرم افزار دیگری، یک ربات باید به طور منظم به روز شود. این شامل به‌روزرسانی‌هایی برای بهبود عملکرد، رفع اشکال‌ها و پاسخ به بازخورد کاربران است. به‌روزرسانی‌های منظم همچنین می‌توانند با اصلاح هر گونه آسیب‌پذیری به حفظ امنیت ربات شما کمک کنند.

 

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

شما می توانید از هر زبان برنامه نویسی برای ایجاد ربات تلگرام استفاده کنید تا زمانی که بتواند درخواست های HTTP را ارسال کند. با این حال، معمولا از زبان‌هایی مانند پایتون استفاده می‌شود، زیرا دارای کتابخانه‌هایی مانند python-telegram-bot هستند که تعامل با Telegram Bot API را آسان می‌کند.

چگونه ربات تلگرام خود را میزبانی کنم؟

میزبانی ربات تلگرام معمولا شامل اجرای کد ربات شما بر روی سرور است. این می تواند سروری باشد که شما مالک آن هستید یا یک سرویس مبتنی بر ابر مانند خدمات وب آمازون، Google Cloud یا Heroku. کد ربات باید همیشه در حال اجرا باشد تا ربات پاسخگو باشد.

آیا می توانم بدون کدنویسی ربات تلگرام با پایتون بسازم؟

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

نتیجه گیری

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

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

به یاد داشته باشید، ایجاد یک ربات یک فرآیند تکراری است و طبیعی است که اولین ربات شما ساده باشد. با کسب تجربه بیشتر، می توانید ربات خود را پیچیده تر و پیچیده تر کنید. فرآیند یادگیری را در آغوش بگیرید، از اشتباه کردن نترسید و مهمتر از همه، از آن لذت ببرید!

نویسنده شوید
دیدگاه‌های شما (2 دیدگاه)

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

پیمان
31 شهریور 1402
با سلام من چندین روش برای نصب براط رفتم ولی همه ارور Cannot close a running event loop رو میدن میشه بگید مشکل چیه

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

Mojtaba
14 شهریور 1402
تشکر بابت توضیحات بنده نمیتونم ارور ConnectionError در vs code رو برطرف کنم حتی با استفاده از proxy

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.

روکسو
16 شهریور 1402
لطفا بررسی کنید ببینید که اطلاعات توکن ها رو به درستی وارد کردید؟

در این قسمت، به پرسش‌های تخصصی شما درباره‌ی محتوای مقاله پاسخ داده نمی‌شود. سوالات خود را اینجا بپرسید.