Как сделать нового бота в Телеграмме

Привет всем. Вероятно, многие из вас уже слышали новость о том, что Telegram, наконец-таки, обзавелся русской локализацией. Конечно, пользоваться мессенджером можно было спокойно и без этого «нововведения», но однозначно число юзеров теперь станет еще больше. Что ж, самое время рассказать о том, как можно создать несложного бота, который станет вашим помощником и откроет больше возможностей при работе с этим мессенджером. И, самое главное, без знаний программирования.

Поделиться

Для чего вообще нужен бот Telegram

  • показывать новости по заданной теме;
  • находить и скачивать любую информацию;
  • отвечать на часто задаваемые вопросы;
  • присылать обновления с сайта;
  • заменять или дополнять email-рассылку;
  • проводить опросы;
  • играть с посетителями и др.

Создание бота для Telegram

Перед тем, как написать бота для Telegram, нужно определиться, что, собственно, он будет делать: рассылать сообщения, выдавать курс валют или что-то еще. Именно от этого будет зависеть его основной код. Писать бота можно как на языках программирования, так и без знания таковых. Конечно, во втором случае не стоит рассчитывать на многофункционального и крутого бота, но с помощью готовых решений можно сделать неплохого помощника.

Затем вводим команду /newbot — создание нового бота. BotFather попросит придумать новое уникальное имя для этого бота, которое обязательно должно заканчиваться на «bot». Можно также добавить аватар для бота и его описание.

Далее BotFather присылает уникальный токен API, который нужно скопировать в буфер обмена и переместить в какой-нибудь текстовый файл, потому что запомнить его просто невозможно.

Теперь у нас есть бот, который ничего не умеет делать. Но это не страшно, мы просто подружим его с другими ботами, и он сможет выполнять множество команд. Сегодня рассмотрим один из самых простых, которым мы сами успешно воспользовались.

Controller Bot

  • неограниченное количество отложенных сообщений в каналах;
  • Inline-клавиатура, которая позволяет добавлять к любому посту красивые inline-кнопки;
  • делегирование управления каналом другим администраторам;
  • сбор статистики подписчиков в каналах.

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

Все, теперь наш бот обладает функицоналом Controller Bot и может делать посты в канал.

Не забудьте добавить своего бота в администраторы канала.

Таким же образом можно «свести» своего бота с ботами, функционал которых позволяет проводить опросы, ставить лайки, голосовать, смотреть статистку, делать Insta View посты и многое другое.

Советуем почитать — 5 вариантов использования Telegram в арбитраже

Небольшое приятное дополнение в виде списка полезных ботов для Telegram

В этих каналах собрана инфа, как упростить работу с различными видами контента:

Roller Ads

Как создать умный бот в telegram — OpenAI (GPT-3) в телеграмм

Roller Ads

CPA журнал “Где Трафик?”
Последние статьи автора:

Принеси в жертву лайк и шеринг во славу бога Рандома, и профитный конверт будет сопутствовать тебе всю неделю!

Еще по теме:  Как сделать чтобы сири читала сообщения Телеграмм

Источник: gdetraffic.com

Создаём Telegram-бота на Python с помощью pyTelegramBotAPI (telebot)

Создаём Telegram-бота на Python с помощью pyTelegramBotAPI (telebot)

Сегодня будем учиться создавать ботов в Telegram с помощью Python.
Попробуем заставить бота присылать сводку погоды по нашему городу.

Нам потребуется:

  1. Компьютер или ноутбук (При должном усердии можно попробовать на телефоне).
  2. Python 3 (Мы будем работать на версии 3.10).
  3. Редактор кода (Я использую PyCharm).
  4. Соединение с интернетом.

У всех на слуху две библиотеки для разработки telegram-ботов, это:
— telebot (он же pyTelegramBotAPI),
— aiogram.

Как создать телеграм-бота на Python

Python — самый популярный язык программирования в феврале 2022 года.

телеграм-бот на Python

Виктория Дербенченко
Автор статьи
16 марта 2022 в 14:39

Телеграм используют более пятисот миллионов людей по всему миру. Компании с его помощью упрощают заказ товаров или услуг, дают консультации. Для этого используют ботов — автоматические программы. Их пишут на разных языках программирования. Рассмотрим, как создать бот на самом популярном в феврале 2022 года языке — Python.

Установите интерпретатор Python

Python — динамически типизированный, интерпретируемый язык. Программы, написанные на нём, не компилируются в исполняемые файлы. Поэтому, чтобы запускать Python-программы, устанавливают его интерпретатор.

На курсе Skypro «Python-разработчик» с этого начинается первый модуль. Вся программа построена от простого к сложному и подходит даже для тех, кто не имеет опыта в программировании и технических знаний. За 10 месяцев можно освоить профессию на уровне уверенного новичка.

️ Windows

как установить интерпретатор Python

Выберите последнюю версию Python

64-bit в интерпретаторе Python

Выберите 64-bit

как установить интерпретатор Python на Windows

Поставьте галочку перед установкой напротив Add Python to PATH

pip install virtualenv

❗ Вызов интерпретатора в командной строке Windows отличается от других ОС. Используйте команду py вместо python3.

️ Linux

Если вы используете ОС Linux, вероятно, Python уже установлен. Чтобы проверить, откройте терминал с помощью команды:

python3 —version

Если вы видите что-то вроде Python 3.x.x, то Python есть. В противном случае используйте установленный менеджер пакетов. В основном это apt. Введите команду:

sudo apt install python3

Установите виртуальное окружение с помощью команды:

sudo apt install python3-venv
Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT

️ MacOS

На макбуках Python часто тоже уже есть. Откройте терминал и проверьте с помощью команды:

python3 —version

Ответ Python 3.x.x, а не ошибка, тоже подтверждает, что Python установлен. Если нет — используйте менеджер пакетов brew. Введите команду:

brew install python3

Установите пакет для создания виртуального окружения:

pip install virtualenv

Создайте папки проекта и виртуального окружения

Откройте терминал Linux или MacOS, командную строку Windows. Перейдите в директорию, в которой вы хотите создать проект бота. Последовательно

mkdir myBot cd myBot python3 -m venv env #

или, если вы используете Windows:

py -m venv env #

Эти команды создадут папку проекта myBot внутри текущей рабочей директории. А в ней — папку с виртуальным окружением.

Активируйте окружение, выберите и установите библиотеки

https://sky.pro/media/obzor-biblioteki-pandas/

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

Еще по теме:  Кэш Телеграмм на Айпаде

source ./env/bin/activate
source.envbinactivate.bat

Чтобы создавать боты, используют разные библиотеки. Самые популярные: python-telegram-bot с синхронным подходом, aiogram с асинхронным.

Асинхронность позволяет отвлекаться от задач и не ждать ввода от пользователя, поэтому мы будем использовать библиотеку aiogram. Документация по ней — на docs.aiogram.

Используйте менеджер Python-пакетов (pip). Чтобы установить библиотеку aiogram, введите команду:

pip install aiogram

Зарегистрируйте бота и получите API-ключ

как добавить нового бота в телеграм

как зарегистрировать бота в телеграме

Введите команду /newbot и отображаемое имя бота

Теперь введите никнейм бота. Он должен быть уникальным, в конце обязательно слово bot. Когда юзернейм пройдет валидацию, вы получите сообщение с API-ключом.

валидация бота в телеграм

Никому не сообщайте полученный токен

Примеры ботов

Эхобот

Для начала в папке проекта создайте несколько файлов.

как создать эхобота

Handlers.py будет хранить функции — обработчики сообщений и команд, main.py нужен для запуска

Напишите в main.py код:

from aiogram import Bot, Dispatcher, executor import handlers API_TOKEN = ‘вставьте сюда ваш токен’ # создаем экземпляры бота и диспетчера bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) # запускаем программу if __name__ == ‘__main__’: # указание skip_updates=True # пропустит команды, # которые отправили # до старта бота executor.start_polling(dp, skip_updates=True)
from aiogram import Bot, Dispatcher, executor import handlers

Здесь из библиотеки aiogram мы импортируем классы Bot, Dispatcher — класс, который регистрирует, на какие команды/сообщения и какой функцией отвечать. И executor — он запускает бота и выполняет функции, зарегистрированные в диспетчере. На второй строке мы импортируем модуль handlers.py — в нём хранят обработчики.

Далее откройте файл handlers.py и напишите в нём пару команд, которые будут обрабатывать запросы:

from aiogram import types # функция, обрабатывающая команду /start async def start(message: types.Message): await message.answer(«Привет!nНапиши мне что-нибудь!») # функция, которая отвечает на сообщение # текстом async def echo(message: types.Message): await message.answer(«Сам ты: » + message.text)

Здесь из модуля aiogram импортируем типы, с помощью которых преобразуем текст сообщения или файлы в структуру данных. Это может быть Message — сообщение, Audio — аудиозапись, Animation — анимация.

Далее определите асинхронные функции, чтобы обрабатывать команды /start и отвечать на сообщения.

Зарегистрируйте эти функции в диспетчере. Для этого в файле main.py добавьте перед запуском программы:

# регистрируем функции dp.register_message_handler(h.start, commands=[«start»]) dp.register_message_handler(h.echo)

В итоге файл main.py выглядит так:

from aiogram import Bot, Dispatcher, executor import handlers API_TOKEN = ‘вставьте сюда ваш токен’ # создаем бота и диспетчер bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) # регистрируем функции dp.register_message_handler(handlers.start, commands=[«start»]) dp.register_message_handler(handlers.echo) # запускаем программу if __name__ == ‘__main__’: # указание skip_updates=True # пропустит команды, # которые отправили # до старта бота executor.start_polling(dp, skip_updates=True)

ка запустить Эхобот в телеграме

Чтобы проверить работу, введите в терминале python3 main.py или py main.py на Windows. Откройте бота в телеграме и запустите его

Криптобот

Чтобы написать криптобота, который будет сообщать текущую цену BTC, LTC и DASH, используйте бесплатный API-сервис SoChain. Еще потребуется дополнительная библиотека, чтобы создать асинхронные запросы aiohttp, но ее устанавливают вместе с aiogram.

Создайте новый модуль utils.py. Добавьте в него url-адрес API-сервиса. Чтобы узнавать цену, используйте метод Get Prices. Он возвращает json-объект с данными о цене из нескольких источников. Поэтому напишите функцию, которая вычисляет среднее значение:

BASE_URL = «https://sochain.com/api/v2/» # API URL # функция, чтобы рассчитать цену def calculate_price(data): prices = [float(entity[«price»]) for entity in data[«data»][«prices»]] return f» <(sum(prices) / len(prices)):.2f>USD»

Еще по теме:  Детализация своей переписки в Телеграм с другим человеком бесплатно на русском

Далее откройте файл handlers.py и напишите код:

from aiogram import types # импортируем библиотеку aiohttp import aiohttp # импортируем из utils все данные from utils import * # обработчик команды /start async def start(message: types.Message): await message.answer(«Привет!nНапиши мне акроним криптовалюты, чтобы узнать текущую цену») # обработчик команды /help async def help(message: types.Message): await message.answer(«Доступные сети:n» + «n».join(networks)) # обработчик запроса цены async def get_price(message: types.Message): session = aiohttp.ClientSession() # создаем GET запрос по закрепленному за методом get_price url async with session.get(BASE_URL + f»get_price//USD») as resp: # получаем ответ в формате json data = await resp.json() # если статус запроса — успешно if data[«status»] == «success»: # рассчитываем цену и отправляем пользователю price = calculate_price(data) await message.answer(price) else: # сообщаем о том, что произошла ошибка await message.answer(«Произошла ошибка»)

Теперь измените main.py файл: зарегистрируйте функции. Затем протестируйте бота:

from aiogram import Bot, Dispatcher, executor import handlers API_TOKEN = ‘вставьте сюда ваш токен’ bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) dp.register_message_handler(handlers.start, commands=[«start»]) dp.register_message_handler(handlers.help, commands=[«help»]) dp.register_message_handler(handlers.get_price) if __name__ == ‘__main__’: executor.start_polling(dp, skip_updates=True)

как запустить криптобота в телегараме

Когда пользователь укажет неподдерживаемую сеть ETH, бот вернет цену биткоина, потому что так устроен API-сервис. Если он не распознал сеть, то использует BTC

Чтобы исправить ошибку, создайте клавиатуру, которая возвращает нужные значения. Напишите специальный класс Middleware: в нём описываются проверки до и после обработки запроса. Либо проверьте вхождение внутри функции. Последний вариант проще и легче.

Если пользователь отправит неподдерживаемый акроним криптосети, вы сообщите ему об этом. Для этого в файле utils.py определите список поддерживаемых сетей:

networks = [«BTC», «LTC», «DASH»] # <— поддерживаемые сети BASE_URL = «https://sochain.com/api/v2/» # API URL def calculate_price(data): prices = [float(entity[«price»]) for entity in data[«data»][«prices»]] return f» <(sum(prices) / len(prices)):.2f>USD»

Теперь отредактируйте функцию расчета цены криптовалюты в файле handlers.py. Для этого добавьте проверку вхождения сети в список поддерживаемых:

async def get_price(message: types.Message): network = message.text.upper() # приводим сообщение к верхнему регистру # выполняем проверку вхождения if network not in networks: await message.answer(«Вы указали неподдерживаемую криптовалюту») return session = aiohttp.ClientSession() async with session.get(BASE_URL + f»get_price//USD») as resp: data = await resp.json() if data[«status»] == «success»: price = calculate_price(data) await message.answer(price) else: await message.answer(«Произошла ошибка»)

Когда пользователь укажет неподдерживаемую сеть ETH, бот сообщит об этом

Код всех файлов

networks = [«BTC», «LTC», «DASH»] # поддерживаемые сети BASE_URL = «https://sochain.com/api/v2/» # API URL def calculate_price(data): prices = [float(entity[«price»]) for entity in data[«data»][«prices»]] return f» <(sum(prices) / len(prices)):.2f>USD»
import aiohttp from aiogram import types from utils import * async def start(message: types.Message): await message.answer(«Привет!nНапиши мне акроним криптовалюты, чтобы узнать текущую цену») async def help(message: types.Message): await message.answer(«Доступные сети:n» + «n».join(networks)) async def get_price(message: types.Message): network = message.text.upper() if network not in networks: await message.answer(«Вы указали неподдерживаемую криптовалюту») return session = aiohttp.ClientSession() async with session.get(BASE_URL + f»get_price//USD») as resp: data = await resp.json() if data[«status»] == «success»: price = calculate_price(data) await message.answer(price) else: await message.answer(«Произошла ошибка»)
from aiogram import Bot, Dispatcher, executor import handlers API_TOKEN = ‘вставьте сюда ваш токен’ bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) dp.register_message_handler(handlers.start, commands=[«start»]) dp.register_message_handler(handlers.help, commands=[«help»]) dp.register_message_handler(handlers.get_price) if __name__ == ‘__main__’: executor.start_polling(dp, skip_updates=True)

Источник: sky.pro

Рейтинг
( Пока оценок нет )
Загрузка ...