Как создать бот на Telegram


Чтобы приступить к созданию бота вам необходимо установить редактор PyCharm для того, чтобы писать на нём Python код. Скачать PyCharm Community, разработанное JetBrains, вы можете здесь..

Если вы успешно установили PyCharm, перейдите в приложение Telegram. Найтиде @BotFather. Зайдите и запустите его. После того как вы его запустите, вам будет выведен список команд. Мы хотим создать бот, поэтому нажимаем на команду /newbot. Затем вводим его имя. Дальше выбираете username для вашего бота. Username должен заканчиваться на "bot". Например, testbot, codebot. Может случится так, что username, который вы выбрали, может быть занят. Поэтому вам придётся придумать новое имя. После вам придёт сообщение с ссылкой на ваш бот и токен. Скопируйте токен и сохраните его в надёжном месте. Запустите ваш бот, чтобы убедиться, что он существует. В целом, это будет выглядеть так:

создание бота в Telegram

Теперь давайте начнём обучать нашего бота. Для этого зайдите в PyCharm. Чтобы настраивать наш чат-бот, нам нужно скачать библиотеку telebot. Поэтому войдите в терминал и напишите следующую команду:

pip install pytelegrambotapi

Все, что нам нужно мы установили. Давайте приступим к написанию кода. Первое, что нужно сделать, это импортировать библиотеку, которую мы только что скачали.

import telebot
Теперь нужно связать наш Python файл с нашим ботом.

bot = telebot.TeleBot('ваш токен внутри кавычки')

Имя переменной не имеет значение. Вы можете её менять или оставить как есть. Рассмотрим, как прислать сообщение сразу после запуска нашего бота. Существует хендлер, с помощью которого можно реагировать на команду /start. В конце файла нужно написать функцию bot.polling(), чтобы программа могла обрабатывать наши запросы. Чтобы отправить сообщение, нужно написать функцию send_message. Первым параметром этой функции нужно указать чат, куда мы отправляем наше сообщение, в нашем случае chat.id, а вторым параметром - текст сообщения.

@bot.message_handler(commands=['start'])
def start(message):  
    bot.send_message(message.chat.id, 'Привет, ты запустил бот, командой /start')

bot.polling()

Теперь когда мы будем давать команду /start, наш бот будет нас приветсвовать.

Код

import telebot
bot = telebot.TeleBot('ваш токен внутри кавычки')
@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, 'Привет, ты запустил бот, командой /start')

bot.polling()


создание бота в Telegram

Сделаем нашего бота ещё привлекательнее. Теперь наш будет отвечать на сообщения пользователя cтикерами и текстом. Для этого опять же понадобится хендлер, но только не с командой start, а с text. Чтобы отправлять стикер нужно написать функцию send_sticker, которая похожа на функцию send_message, но только второй параметр не текст сообщения, а id стикера. Найти id стикера вам поможет @idstickerbot. Чтобы бот обрабатывал "ПриВЕТ", "ПРиВеТ", а не только "привет", нам нужно приписать функцию .lower() к message.text. Функция lower() переводит все символы в нижний регистр.

Исходный код

import telebot


bot = telebot.TeleBot('1055120604:AAGd75NdZQ3ljGAdZy_u63bT3C_NeSfzpEE') # я его уже удалил, можете не проверять:))
@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, 'Привет, ты запустил бот, командой /start')
@bot.message_handler(content_types=['text'])
def send(message):
    if message.text.lower() == 'привет':
        bot.send_message(message.chat.id, 'Привет')
        bot.send_sticker(message.chat.id, 'CAACAgIAAxkBAAL8IF75kDex01qRmguH5_7aKagq4YhnAAINAQACVp29Ckb9Qx0FRNeXGgQ')
    elif message.text.lower() == 'пока':
        bot.send_message(message.chat.id, 'Прощай')
        bot.send_sticker(message.chat.id, 'CAACAgIAAxkBAAL8Hl75j-9WAAG9SWxUbMHkBTttwYLkSwACGQIAAsoDBgur-GqwbsOxdhoE')
    elif message.text.lower() == 'я тебя люблю':
        bot.send_message(message.chat.id, 'Спасибо')
        bot.send_sticker(message.chat.id, 'CAACAgIAAxkBAAL8HF75j5iBj7vCVpBnex8gcjsvIzcsAAIyAAPkoM4He_3BVW2NmH4aBA')

bot.polling()


создание бота в Telegram

Я собрал исходники других ботов, для того чтобы вы могли узнать возможности бота.

Код. Бот 1

import telebot


bot = telebot.TeleBot('1055120604:AAGd75NdZQ3ljGAdZy_u63bT3C_NeSfzpEE')

@bot.message_handler(commands=['start', 'go'])
def start_handler(message):
    chat_id = message.chat.id
    text = message.text
    msg = bot.send_message(chat_id, 'Сколько вам лет?')
    bot.register_next_step_handler(msg, askAge)

def askAge(message):
    chat_id = message.chat.id
    text = message.text
    if not text.isdigit():
        msg = bot.send_message(chat_id, 'Возраст должен быть числом, введите ещё раз.')
        bot.register_next_step_handler(msg, askAge) #askSource
        return
    msg = bot.send_message(chat_id, 'Спасибо, я запомнил что вам ' + text + ' лет.')

bot.polling()

Код. Бот 2

import telebot


bot = telebot.TeleBot('1055120604:AAGd75NdZQ3ljGAdZy_u63bT3C_NeSfzpEE')

@bot.message_handler(commands=['start'])
def start(message):
    print(message.from_user.id)
    for i in range(0, 10):
        bot.send_message(<id какого - нибудь пользователя telegram>, 'Текст сообщения')



bot.polling()

Боты, которые мы создали малоинформативны. Поэтому ваш бот будет динамичней, если у вас получится связать её с вашей базой данных(если она у вас есть). Можно сказать, что у вас есть базовые знания для создания ботов и теперь вы можете создать простой бот. Надеюсь, этот урок был для вас полезен.


Чтобы написать комментарии вам нужно войти в систему или зарегистрируйтесь

Комментарии