Найти в Дзене

Bot в телеграме на python

Любительский перевод офф. документации pyTelegramBotAPI Начало работы Для работы с pyTelegramBotAPI его нужно установить иметься несколько способов, здесь опишу 2 основных Установка с помощью pip (менеджер пакетов Python): $ pip install pyTelegramBotAPI Установка с помощью PyCharm:
1. запускаем программу и создаем проект.
2. в левом нижнем углу видим иконки, нам нужна Python Packages 3. В поиске пишем pyTelegramBotAPI 4. Скачиваем по кнопке в правом углу Создание первого бота Что нам нужно Предполагается, что вы получили токен API с @BotFather. Мы назовем этот токен . Кроме того, у вас есть базовые знания языка программирования Python и, что более важно, API Telegram Bot.TOKEN Стандартный эхо бот Первым делом стоит импортировать в проект pyTelegramBotAPI: import telebot
bot = telebot.TeleBot("ТОКЕН", parse_mode=None) *Токен заменить на тот который получили от @BotFather* После этого объявления нам нужно зарегистрировать некоторые так называемые обработчики сообщений. Обработчик
Оглавление

Любительский перевод офф. документации pyTelegramBotAPI

Начало работы

Для работы с pyTelegramBotAPI его нужно установить иметься несколько способов, здесь опишу 2 основных

Установка с помощью pip (менеджер пакетов Python): $ pip install pyTelegramBotAPI

Установка с помощью PyCharm:
1. запускаем программу и создаем проект.
2. в левом нижнем углу видим иконки, нам нужна Python Packages

3. В поиске пишем pyTelegramBotAPI

-2

4. Скачиваем по кнопке в правом углу

-3

Создание первого бота

Что нам нужно

Предполагается, что вы получили токен API с @BotFather. Мы назовем этот токен . Кроме того, у вас есть базовые знания языка программирования Python и, что более важно, API Telegram Bot.TOKEN

Стандартный эхо бот

Первым делом стоит импортировать в проект pyTelegramBotAPI:

import telebot
bot = telebot.TeleBot("ТОКЕН", parse_mode=None)

*Токен заменить на тот который получили от @BotFather*

После этого объявления нам нужно зарегистрировать некоторые так называемые обработчики сообщений. Обработчики сообщений определяют фильтры, которые должно пройти сообщение. Если сообщение проходит фильтр, вызывается оформленная функция и входящее сообщение передается в качестве аргумента.

Определим обработчик сообщений, который обрабатывает входящие и команды /start /help

@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.reply_to(message, "Howdy, how are you doing?")
Функция, украшенная обработчиком сообщений
, может иметь произвольное имя, однако она должна иметь только один параметр (message).

Добавим еще один обработчик:
@bot.message_handler(func=lambda m: True)
def echo_all(message):
bot.reply_to(message, message.text)

Это повторяет все входящие текстовые сообщения обратно отправителю. Он использует лямбда-функцию для проверки сообщения. Если лямбда возвращает значение True, сообщение обрабатывается оформленной функцией. Поскольку мы хотим, чтобы все сообщения обрабатывались этой функцией, мы просто всегда возвращаем Значение True.

Примечание: все обработчики тестируются в том порядке, в котором они были объявлены

Теперь у нас есть базовый бот, который отвечает на статическое сообщение на команды «/start» и «/help» и который повторяет остальные отправленные сообщения. Чтобы запустить бота, добавьте в наш исходный файл следующее: bot.infinity_polling()

Хорошо, вот и все! Наш исходный файл теперь выглядит следующим образом:
import telebot

bot = telebot.TeleBot("ТОКЕН")

@bot.message_handler(commands=['start', 'help'])

def send_welcome(message):

bot.reply_to(message, "Howdy, how are you doing?")

@bot.message_handler(func=lambda message: True)

def echo_all(message):

bot.reply_to(message, message.text)

bot.infinity_polling()

Для запуска бота запускаем наш код и на этом все.
ВАЖНО бот работает только когда запущен код.

Фильтры для обработчика сообщений

взято из офф. документации https://github.com/eternnoir/pyTelegramBotAPI
взято из офф. документации https://github.com/eternnoir/pyTelegramBotAPI

Вот несколько примеров использования фильтров и обработчиков сообщений:

import telebot

bot = telebot.TeleBot("TOKEN")

# Handles all text messages that contains the commands '/start' or '/help'.

@bot.message_handler(commands=['start', 'help'])

def handle_start_help(message):

pass

# Handles all sent documents and audio files

@bot.message_handler(content_types=['document', 'audio'])

def handle_docs_audio(message):

pass

# Handles all text messages that match the regular expression

@bot.message_handler(regexp="SOME_REGEXP")

def handle_message(message):

pass

# Handles all messages for which the lambda returns True

@bot.message_handler(func=lambda message: message.document.mime_type == 'text/plain', content_types=['document'])

def handle_text_doc(message):

pass

# Which could also be defined as:

def test_message(message):

return message.document.mime_type == 'text/plain'

@bot.message_handler(func=test_message, content_types=['document'])

def handle_text_doc(message):

pass

# Handlers can be stacked to create a function which will be called if either message_handler is eligible

# This handler will be called if the message starts with '/hello' OR is some emoji

@bot.message_handler(commands=['hello'])

@bot.message_handler(func=lambda msg: msg.text.encode("utf-8") == SOME_FANCY_EMOJI)

def send_something(message):

pass

На этом стоит закончить поскольку основные аспекты были затронуты а для большего углубления используйте офф.документацию.