telebot быстро и понятно. Телеграмм-бот

от автора

telebot (pyTelegramBotAPI) хорошая и лёгкая библиотека для создания бота на python для телеграмма.

Установка

Если у вас windows, тогда вам надо найти cmd на своём пк, а если у вас macOS, тогда вам надо открыть терминал.

Для установки telebot (pyTelegramBotAPI) на windows вам надо написать в cmd

pip install pyTelegramBotAPI

Для установки на macOS нам надо написать в терминале

pip3 install pyTelegramBotAPI

Написание кода

Сначала надо получить токен. Для этого зайдём к боту botfather,чтобы получить токен (botfather)

Теперь можно начать писать код.Сначала мы импортируем библиотеку.

import telebot token="наш токен"

Теперь создаём переменную под названием token, в ней мы будем хранить наш токен.

Теперь мы можем создать приветствие бота:

import telebot token='наш токен' bot=telebot.TeleBot(token) @bot.message_handler(commands=['start']) def start_message(message):   bot.send_message(message.chat.id,"Привет ✌️ ") bot.infinity_poling()

Нам надо создать переменную bot, в ней мы пишем telebot.Telebot (наша переменная с токеном).

Пишем @bot.message_handler(commands=[‘start’])

Создаём функцию под названием «start_message»

В скобках указываем «message».

Пишем внутри функции bot.send_message(message.chat.id,»Привет»)

и вне функции пишем bot.infinity_poling()

и запускаем программу.

Теперь наш бот может приветствовать

вот пример:

Приветствие мы сделали, теперь давайте сделаем кнопку.

Надо написать from telebot import types там же, где мы импортировали библиотеку telebot

import telebot from telebot import types token='наш токен' bot=telebot.TeleBot(token) @bot.message_handler(commands=['start']) def start_message(message): bot.send_message(message.chat.id,'Привет') @bot.message_handler(commands=['button']) def button_message(message): markup=types.ReplyKeyboardMarkup(resize_keyboard=True) item1=types.KeyboardButton("Кнопка")   markup.add(item1)bot.send_message(message.chat.id,'Выберите что вам надо',reply_markup=markup) bot.infinity_polling()

Теперь пишем @bot.message_handler(commands=[‘button’]). Дальше мы создаём функцию под названием button_message, в скобках указываем message.

Дальше надо создать клавиатуру в переменной под названием markup, в переменной пишем types.ReplyKeyboardMarkup(resize_keyboard=True).

Потом создаём переменную item1, в ней будет хранится сама кнопка и пишем что item1=types.KeyboardButton(«текст на кнопке»).

Дальше к клавиатуре добавим нашу кнопку

markup.add(item1)

Далее надо отправить сообщение «Выберите что вам надо» и после текста написать reply_markup=markup и закрываем скобки.

Теперь у нас есть кнопка. Вот пример:

Но если мы на неё нажмём, то ничего не произойдёт. Сейчас мы сделаем так, чтобы при нажатии на кнопку выдавало ссылку на мою страницу в Хабре.

import telebot from telebot import types token='наш токен' bot=telebot.TeleBot(token) @bot.message_handler(commands=['start']) def start_message(message):     bot.send_message(message.chat.id,'Привет') @bot.message_handler(commands=['button']) def button_message(message):     markup=types.ReplyKeyboardMarkup(resize_keyboard=True)     item1=types.KeyboardButton("Кнопка")     markup.add(item1)     bot.send_message(message.chat.id,'Выберите что вам надо',reply_markup=markup) @bot.message_handler(content_types='text') def message_reply(message):     if message.text=="Кнопка":         bot.send_message(message.chat.id,"https://habr.com/ru/users/lubaznatel/") bot.infinity_polling()

Для начала мы напишем @bot.message_handler(content_types=’text’)

Дальше нам надо создать функцию по названием message_reply, а в скобках указать message.

Внутри функции надо указать условие «if message.text==»Кнопка:», а внутри условия отправить нам нужное сообщение.

Вот пример:

Смена кнопок

Это последняя часть статьи.В следующей статье мы разберём с вами добавление в группу или канал.

Это можно считать самая лёгкая часть статьи.

Мы разберём сейчас с вами замену кнопок.

import telebot from telebot import types token='наш токен' bot=telebot.TeleBot(token) @bot.message_handler(commands=['start']) def start_message(message):     bot.send_message(message.chat.id,'Привет') @bot.message_handler(commands=['button']) def button_message(message):     markup=types.ReplyKeyboardMarkup(resize_keyboard=True)     item1=types.KeyboardButton("Кнопка")     markup.add(item1)     bot.send_message(message.chat.id,'Выберите что вам надо',reply_markup=markup) @bot.message_handler(content_types='text') def message_reply(message):     if message.text=="Кнопка":         markup=types.ReplyKeyboardMarkup(resize_keyboard=True)         item1=types.KeyboardButton("Кнопка 2")         markup.add(item1)         bot.send_message(message.chat.id,'Выберите что вам надо',reply_markup=markup)     elif message.text=="Кнопка 2":         bot.send_message(message.chat.id,'Спасибо за прочтение статьи!') bot.infinity_polling()

Теперь нам просто надо создать клавиатуру с кнопками и добавить к клавиатуре кнопку как в прошлой части в тоже самое условие.Дальше в той же функции написать:

elif message.text=="Кнопка 2": bot.send_message(message.chat.id,'Спасибо за прочтение статьи!')

Теперь при нажатии на Кнопку 1 она у нас сменяется на кнопку 2 и при нажатии на кнопку 2 у нас присылает сообщение «Спасибо за прочтение статьи!».

Вот пример:


ссылка на оригинал статьи https://habr.com/ru/articles/580408/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *