آموزش نحوه نوشتن یک ربات bot برای Telegram

به نام دانای بر حق

مقدمه

با این که من خودم مخالف ۱۰۰٪ این تکنولوژی هایی هستم که هر روز زندگی بشر رو بیشتر به پوچی نزدیک می کنه ولی خب بد نیستش که از نظر فنی بیایم و به این موضوع نگاهی بندازیم همونجوری که میدونین تلگرام یه شبکه ای هستش شبیه وایبر منتهی با حذف یه سری محدودیت ها که وایبر داره محبوب تر شده و با داشتن ربات ها متمایز شده از سایر شبکات دیگر، ما در این آموزش در مورد نحوه راهندازی یک ربات صحبت می کنیم ما تک تک api ها رو معرفی نمیکنیم یک ربات  رو تعریف می کنیم  از ۰ تا ۱۰۰ اما تا حد زیادیش رو میگم بقیه با شما شاید هم یک آموزش تکمیلی در این مورد ارسال کردیم.

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

پیش فرض ها

اول از همه شما باید به سیستم عامل خودتون تسلط داشته دارید ( من تو آموزش از لینوکس توزیع ubuntu استفاده می کنم و به شما هم همین os رو پیشنهاد می کنم.) .

دوم با زبان پایتون حداقل دست پا شکسته آشنایی داشته باشید.

سوم تسلط به یک زبان وب و نوشتن یک ربات برای پرسش و پاسخ ( ضروری نیست)

دانلود و نصب

ابتدا پایتون روی سیستمتون نصب کنین اگر لینوکسی هستید نصب شده است نگران نباشید البته نسخه 2.x نه 3

سپس python pip رو نصب کنید در اوبنتو با دستور زیر:

سپس کتابخانه telegram bot رو با Pip نصب کنید به شکل زیر:

سپس git را نصب کنید در Ubuntu به شکل زیر:

در نهایت میریم به پوشه مشخص مثل desktop بعد یه همزاد یا همون clone از ربات github میگیریم با دستور زیر:

بعد وارد پوشه همزاده شده می شویم:

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

خب حالا آنچه نیاز بودش رو نصب کردیم .

 

نحوه ایجاد bot

برای ایجاد روبوت شما باید با botfather صحبت کنید برای این کار Telegram نسخه دسکتاپ رو دانلود کنید و واردش بشین و با کلیک روی این لینک میتونین تو تلگرامتون با بات فادر صحبت کنید

ضرورت صحبت با botfather این هستش که شما باید api مورد نیاز رو از این ربات خود تلگرام بگیرین:

برای ایجادش اول:

رو بزنین اسم ربات رو از شما میخواد مثلا میزنیم: xmen

بعد نام کاربری برای ربات میخوادش که حتما باید به _bot ختم شود مثل: xmen_bot

خب حالا یه چیزی تو این مایه ها به شما میده در پاسخ میده که api شما هستش:

خب تا ایجا درست ‍پیش رفتین.

نحوه راهندازی bot

برای راهندازی از یه editor , IDE معروف python مثل spyder استفاده کنین خب وارد پوشه exmaples بشین و فایل زیر رو باز کنین:

roboed.py

 

محتوای داخل این هستش:

خب به جای leandrotoledodesouza@gmail.com ایمیل خودتون رو بزنین ضروری نیست این حرکت

در خط زیر :

token اون api دریافت شده رو بذارین ۱۰۰٪ ضروری هستش.

خب حالا به تابع ed مراجعه می کنیم:

در این تابع یه پرس و جو از آدرس اج وجق خودش میشه اما برای سرور خودنون عوض می کنیم که توضیح دقیق تر رو به عهده خودتون میذارم که برین سراغش سخت نیست.

حال من یه تغییر دیگه توش ایجاد می کنیم:

به شکل زیر عوض می کنیم

خب معنی کد بالا اینه اگر pic رو فرستاد براش عکس میفرسته در غیر این صورت پاسخ پرس و جو رو ارسال میکند.

run کردن ربات

run کردن ربات توسط ترمینال در لینوکس و یا cmd در ویندوز وارد پوشه examples میشیم و دستور زیر رو مینویسیم:

خب الان ربات ما به تلگرام وصل هستش و تا مادامی که ترمینال یا cmd باز هستش ربات ما توانایی پاسخگویی رو داره به مراجعه کننده.

برای ‍پیدا کردن ربات همون زمان ساخت api بهتون‌ آدرسش هم میدهد.

البته برای دائم الجرا شدنش باید اون روی یه سرور استارت آپ کنید.

به همین سختی و به همین خوشمزگی 😀 چون پایتون بود خوشمزه شد.

اگر مایل بودین میتونیم تکمیلی هم صحبت کنیم اینجا لینوکسه و دنیا دنیا اتفاق خوب 😀

‌A1Gard

اول از همه کوچک ترین عضو مجموعه 4xmen بنده حقیر هستم. در ثانی یک توسعه دهنده هستم زمینه های تخصصی کارم :‌ Delphi, PHP, C++ ,Python, JavaScript, Unity game engine, C#, asm و علاقه مند به لینوکس، RCE ، کریپتوگرافی هستم. تا الان حضرت حق اینا رو به ما داده و هر وقت که بخواد ازمون میگیره دست خودشه. یا حق، با حق، تا حق

More Posts

32 thoughts on “آموزش نحوه نوشتن یک ربات bot برای Telegram”

  1. با سلام و تشکر فراوان. امکانش هست اموزشی برای ساخت روبات با PHP به همین سبک بگذارید. اموزش در سایتهای مثل
    http://amirh.ir/how-to-build-telegram-bot/#comment-544
    وجود داره ولی به این کاملی توضیح داده نشده.
    مزیت ان روش اینه که باهاست کار راه میوفته و نیاز به سرور نیست

  2. سلام وقتی می خوام این کد رو اجرا کنم با ارور :
    Traceback (most recent call last):
    File “test.py”, line 32, in
    main()
    File “test.py”, line 11, in main
    LAST_UPDATE_ID = bot.getUpdates()[-1].update_id # Get lastest update
    IndexError: list index out of range

    مواجه می شم .

  3. میشه یکم بیشتر توضیح بدهید که اگر همین ربات بخاد فید از سایت ها بخونه و بفرسته باید چکار کنه‌؟ یکم راهنمایی کنید یا کد مثالش رو گیت‌هاپ رو بدید ؟ ممنون 🙂

    1. با سلام
      معمولا سایتها یک ادرس فید دارن که محتوی اون به صورت xml هست شما با استفاده از ادرس rss اون سایت و یک تابع مثل زیر میتونین فیدهای سایت رو دربیارین و پاس بدید به ربات تا ارسال کنه

  4. سلام
    اگه این اسکریپت رو بخوام رو ی vps قرار بدم که همیشه اجرا بشه باید اون تحت چه سرویسی اجرا کنم(apach,django,flask) یا باید از cgi استفاده کنم در کد بالا؟ در کل اگه ممکنه یک توضیح بدید که همین اسکریپت که رو کلاینت اجرا میشه بدون تغییر چه طوری رو سرور اپلود و اجرا کرد
    ممنون

    1. روی هر وی پی اسی میتونی اجرا کنی فقط پایتون نیاز داری.
      اما اگر لینوکس داشته باشی با برنامه forever میتونی اطمینان حاصل کنی که همیشه یک instance از برنامه ات در حال اجراس.
      برای آپلود نمیدونم از چه روشی فایل هات رو میفرستی سرورت
      برای اجراش از طریق ssh یا cmd در ویندوز به سادگی میتونی اجرا کنی

      1. پس فقط پایتون و ماژول های که لازم داره نصب کنم. با این برنامه ای که معرفی کردید دیگه نیازی به قراردادن کد در while برای در حال اجرا بودن برنامه نیست؟ اگه کسی ادرس فایل رو داخل url بزنه می تونه فایل رو بگیره راه ی هست که کسی دسترسی نداسته باشه؟
        ممنون

        1. درسته دقیقا.
          forever مسئول run بودن برنامه تو هر شرایطی هستش ثانیاْ اصلا برنامه هیچ ربطی به مکانی که دسترسی به هاست یا همون پوشه public شما نداره که بشه دانلود کرد
          مثل یک گوشی یه سرور تلگرام وصل میشه و اطلاعات رو دریافت و پاسخ مناسب را میدهد به همین سادگی.

          1. اخه روی همون vps می خوام یه وب سایت هم بزارم با اسکن کردن فولدرای سایت مشخص میشه پس باید سایت رو یه هاست دیگه بزارم ؟
            ممنون

          2. قبل از پوشه پابلیک بذارش یا با یه .htaccess دسترسی مستقیم رو به فایل هاش ببند

  5. سلام
    عالیه
    من هنوز انجام ندادم این کارو ولی برنامه ریزی کردم که انجامش بدم حتما
    فقط ممنون میشم اپلود ربات روی هاست دایرکت ادمین استفاده 24 ساعته از اون رو بزارید ممنون
    و نمونه ای از نوشتن پرسش و پاسخ از ربات رو هم بدید به اضافه دریافت و ارسال مطالب از rrs یک سایت D;

  6. سلام.
    آقا درباره خودتون رو خیلی قشنگ نوشتید…
    « تا الان حضرت حق اینا رو به ما داده و هر وقت که بخواد ازمون میگیره دست خودشه. یا حق، با حق، تا حق»

    ممنون

  7. سلام …
    لطفا نحوه ایجاد و کارکردن باهاش تحت django رو هم بگید . ( اون فایل اصلی رو که میسازیم کجا باید قرارش بدیم )

    با برنامه نویسی ربات میشه برای کانال هم مطلب فرستاد یا اون یه چیز جداگونس ؟ ( اگه بله که یه راهنمایی بکنید و اگرم نه که یه کتابخونه براش بگید )

    ممنون

    1. با دیجانگو کار نکردم نمیتونم راهنمایی دقیقی بکنم.
      در جریان هستم ربات عضو کانال میشه اما این که مطل بذاره رو تا حالا ندیدم.

  8. سلام
    وقت بخیر
    من اگه بخوام رباتم پیام هایی که خودم دستی بهش میدم رو به گروه ها و کانالها و اشخاصی که استارت کردن ربات رو ارسال کنه
    بازم باید این کارها رو انجام بده؟؟

  9. سلام خسته نباشید.
    من با سایت گیت هاب ربات ساختم ولی برای ران کردنش نیاز ب میز کار لینوکس داره ….
    الان سورسشو دارم فقط پوشه examples هم نداره چجوری باید رانش کنم .بدون کار با لینوکس. ممنون

    1. نه نیازی به لینوکس نیست اگر pip رو نصب کردین میتونین درستش کنین فقط کافی با command line فایل پایتون رو اجرا کنین.

  10. سلام
    لطفاً یکی که وقت داره و میتونه یه رباط ساده برای من بسازه. فقط میخوام دکمه داشته باشه و با زدن دکمه های مختلف متون مختلف یا عکس یا صدا یا فرمتهای دیگه بفرسته. زیادم نمیخوام شلوغ باشه. نحوه ساخت و یا حالت ساده ش رو بسازید بفرستید ممنون میشم.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *