سلام دوستان امروز با آموزش ساخت ربات تلگرام به زبان «پایتون» در خدمتتون هستیم!

زیاد خستتون نمیکنم چیزهایی که نیازه :

  • اکانت تلگرام
  • توکن ربات
  • سرور و مفسر پایتون

خب اول از همه باید توکن ربات رو بسازید، برای ساخت توکن اول باید در تلگرام به آیدی botfather@ مراجعه کنید و بعد طبق عکس زیر عمل کنید.

ساخت ربات تلگرام در بات فادر

مراحل به ترتیب :

  • ارسال دستور استارت به ربات
  • ارسال دستور ساخت ربات
  • ارسال نام پروفایل ربات
  • ارسال آیدی پروفایل ربات ( بدون “@” و حتما باید با کلمه bot یا bot_ ختم بشه)
  • دریافت توکن و آیدی ربات ساخته شده توسط بات فادر

خب شما ربات رو ساختید.

مراحل ساخت یک اکو بات ( echo bot ) به وسیله ماژول telebot برای پایتون :

اول از همه باید ماژول telebot نصب بشه

$ pip install pyTelegramBotAPI

و بعد فایلی که میخوایم کد رو درونش بنویسیم رو ایجاد میکنیم ( برای مثال bot.py )

ماژول رو ایمپورت میکنیم و توکن مورد نظر رو به ماژول میدیم تا به API تلگرام وصل بشه:

import telebot
API_TOKEN = 'XXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
bot = telebot.TeleBot(API_TOKEN)

هندلر های دستور رو به ربات وصل میکنیم تا اگه دستور ارسال شد کد اجرا بشه و پاسخ “Hi there, I am EchoBot” ارسال بشه:

@bot.message_handler(commands=['help', 'start'])
def send_welcome(message):
    bot.reply_to(message, "Hi there, I am EchoBot.")

و هندلر دوم که به همه پیام ها پاسخ میده و همون پیام رو برمیگردونه ( عمل اکو ):

@bot.message_handler(func=lambda message: True)
def echo_message(message):
    bot.reply_to(message, message.text)

درآخر دستور پولینگ که جهت درخواست های آپدیت متوالی به API تلگرام هست:

bot.polling()

کد در آخر :

import telebot
API_TOKEN = 'XXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
bot = telebot.TeleBot(API_TOKEN)

@bot.message_handler(commands=['help', 'start'])
def send_welcome(message):
    bot.reply_to(message, "Hi there, I am EchoBot.")


@bot.message_handler(func=lambda message: True)
def echo_message(message):
    bot.reply_to(message, message.text)

bot.polling()

لینک gist گیتهاب

16 پاسخ به “ساخت ربات تلگرام با پایتون”

  1. سلام من این کدو زدم ولی این خطا اومد:
    ۲۰۱۸-۰۷-۱۷ ۲۳:۲۳:۰۵,۶۸۸ (util.py:65 PollingThread) ERROR – TeleBot: “ApiException occurred, args=(‘A request to the Telegram API was unsuccessful. The server returned HTTP 401 Unauthorized. Response body:\n[{“ok”:false,”error_code”:401,”description”:”Unauthorized”}]’,)
    Traceback (most recent call last):
    File “C:\Python27\lib\site-packages\telebot\util.py”, line 59, in run
    task(*args, **kwargs)
    File “C:\Python27\lib\site-packages\telebot\__init__.py”, line 158, in __retrieve_updates
    updates = self.get_updates(offset=(self.last_update_id + 1), timeout=timeout)
    File “C:\Python27\lib\site-packages\telebot\__init__.py”, line 128, in get_updates
    json_updates = apihelper.get_updates(self.token, offset, limit, timeout, allowed_updates)
    File “C:\Python27\lib\site-packages\telebot\apihelper.py”, line 180, in get_updates
    return _make_request(token, method_url, params=payload)
    File “C:\Python27\lib\site-packages\telebot\apihelper.py”, line 56, in _make_request
    return _check_result(method_name, result)[‘result’]
    File “C:\Python27\lib\site-packages\telebot\apihelper.py”, line 75, in _check_result
    raise ApiException(msg, method_name, result)
    ApiException: A request to the Telegram API was unsuccessful. The server returned HTTP 401 Unauthorized. Response body:
    [{“ok”:false,”error_code”:401,”description”:”Unauthorized”}]

    ۲۰۱۸-۰۷-۱۷ ۲۳:۲۳:۰۵,۷۰۱ (__init__.py:299 MainThread) ERROR – TeleBot: “A request to the Telegram API was unsuccessful. The server returned HTTP 401 Unauthorized. Response body:
    [{“ok”:false,”error_code”:401,”description”:”Unauthorized”}]”
    چطوری حلش کنم

  2. سلام ببخشید ورژن پایتون باید چند باشه؟ میشه با پایتون ۳٫۷ با استفاده دو کتابخانه telebot و telegram ربات ساخت؟

    1. سلام کتابخانه telebot با پایتون ۲ و ۳ سازگار هست
      نیازی هم به استفاده از کتابخانه telegram نیست، telebot کامل هستش.

      1. خیلی ممنون. این کتابخانه سایتی داره؟ و منم اموزش بالا رو رفتم ارور پایین رو گرفتم و کتابخانه رو هم نصب کردم
        Traceback (most recent call last):
        File “C:/Users/Mehran/PycharmProjects/Pbot/newbotbot.py”, line 1, in
        import telebot
        File “C:\Users\Mehran\PycharmProjects\Pbot\venv\lib\site-packages\telebot\__init__.py”, line 1353
        @util.async()
        ^
        SyntaxError: invalid syntax

          1. برنامه pycharm رو هم بایسیتی به پراکسی فیلتر شکن وصل میکردم که تازه یاد گرفتم. این آموزش تو پایتون ۲٫۷ جواب داد و ۳٫۷ همون ارور رو داد.خیلی ممنون بابت کمک

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

  3. سلام . من این کد رو ک نوشتم خطا میده که اتصال بی نتیجه ماند. با کامنت کردن دستور polling (آخرین دستور) اجرا میشه ولی خب اپدیتی نداره روی بوت. میخواستم ببینم این مشکل از فیلتر بودن سایت تلگرام هست یا نه؟

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

  4. سلام عالی بود ولی برای من ارور connection داره که بعد از یه مدت متوجه شدم مشکل از فیلتر بودن تلگرامه من از اوبونتو استفاده میکنم و socks5 رو تلگرامم ست کردم.
    میشه همین socks5 روی ربات ست کرد؟منظورم اینه خود ربات یک پراکسی داشته باشه و اینکه ماژولی برای این هست؟ ممنون میشم پاسخ بدین

پاسخی بگذارید

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