Telegram-боты — это небольшие программы, которые можно использовать для автоматизации набора задач внутри мессенджера Telegram. Они могут быть интегрированы с API сторонних сервисов для расширения своих функциональных возможностей. В этой статье мы обсудим, как создать такого рода бота с использованием Python и его библиотек.
Использование библиотеки python-telegram-bot
Библиотека python-telegram-bot представляет собой оболочку для API Telegram Bot, которая облегчает создание ботов. В качестве примера создадим простого бота, который использует OpenWeatherMap API для получения текущей погоды.
Установка библиотеки
pip install python-telegram-bot pip install requests
Пример кода
from telegram import Update from telegram.ext import Updater, CommandHandler, CallbackContext import requests def get_weather(city: str) -> str: response = requests.get(f»http://api.openweathermap.org/data/2.5/weather?q=) data = response.json() description = data[‘weather’][0][‘description’] temp = int(data[‘main’][‘temp’] — 273.15) # convert from Kelvin to Celsius return f»Weather in : , temperature: °C» def weather(update: Update, context: CallbackContext): city = ‘ ‘.join(context.args) update.message.reply_text(get_weather(city)) def main(): updater = Updater(«YOUR_TELEGRAM_BOT_TOKEN», use_context=True) dp = updater.dispatcher dp.add_handler(CommandHandler(«weather», weather)) updater.start_polling() updater.idle() if __name__ == ‘__main__’: main()
В этом примере функция get_weather отправляет HTTP GET запрос к API OpenWeatherMap и извлекает описание погоды и температуру для указанного города.
Telegram Bot на Python | Часть 1. Наш первый телеграм-бот на библиотеке-обёртке python telegram bot
Использование библиотеки aiogram
Aiogram — это еще одна популярная асинхронная библиотека для создания Telegram-ботов на Python. Возьмем аналогичный пример с прогнозом погоды.
Установка библиотеки
pip install aiogram pip install requests
Пример кода
from aiogram import Bot, Dispatcher, types import requests import asyncio async def get_weather(city: str) -> str: response = requests.get(f»http://api.openweathermap.org/data/2.5/weather?q=) data = response.json() description = data[‘weather’][0][‘description’] temp = int(data[‘main’][‘temp’] — 273.15) # convert from Kelvin to Celsius return f»Weather in : , temperature: °C» async def weather(message: types.Message): city = message.text.split(‘/weather’, 1)[1].strip() await message.reply(await get_weather(city)) async def main(): bot = Bot(«YOUR_TELEGRAM_BOT_TOKEN») dp = Dispatcher(bot) dp.register_message_handler(weather, commands=[‘weather’]) await dp.start_polling() if __name__ == ‘__main__’: asyncio.run(main())
В обоих примерах вам необходимо заменить YOUR_TELEGRAM_BOT_TOKEN на токен своего бота, а YOUR_OPENWEATHERMAP_API_KEY — на свой ключ API OpenWeatherMap.
Пожалуйста, обратите внимание, что это базовые примеры и в реальном использовании вам потребуется обработка ошибок и валидация входных данных.
Telegram Bot на Python / Создания ботов для начинающих за 30 минут
Создание бота Telegram, который взаимодействует с API стороннего сервиса, — это мощный способ расширить возможности вашего бота и сделать его еще более полезным для пользователей. Python и его библиотеки предоставляют простой и гибкий способ создания таких ботов.
Источник: devprac.ru
Создание бота в мессенджере Telegram
Для того чтобы получить так называемую базовую основу для своего собственного бота, необходимо обратиться за помощью к специальному боту Телеграм.
-
Откройте мессенджер и либо воспользуйтесь представленной выше ссылкой, либо введите название бота в поисковую строку и откройте чат с ним. Нажмите на кнопку «Запустить».
Шаг 2: Настройка
Обратите внимание! Данный шаг инструкции подразумевает, что у вас уже есть как минимум основная идея для бота и общее представление о том, как он будет выглядеть и работать. О создании его «внутренней», программной части, будет рассказано в следующем шаге, а потому вы вполне можете начать с разработки и только после этого перейти к настройке.
/setname | Изменение отображаемого имени бота |
/setdescription | Добавление описания |
/setuserpic | Смена аватара |
/setcommands | Установка и редактирование перечня команд, на которые бот должен реагировать |
/deletebot | Удаление добавленного бота |
/token | Создание нового токена или замена старого, если оригинальный скомпрометирован |
/setinline | Включение inline-режима, при котором бот будет реагировать на соответствующие команды во всех чатах, куда он добавлен |
/setinlinefeedback | Ответ на ввод отображением заданных вариантов (показом сообщения-шаблона, изображения, кнопки и т. д.) |
/setprivacy | Активация приватного режима, при котором бот будет распознавать исключительно команды и адресованные ему сообщения |
Шаг 3: Разработка
Наиболее важный и, наверное, сложный, если говорить о малоопытных пользователях, этап в создании собственного Telegram-бота – его непосредственная разработка. В примере далее нами будет использоваться Python.
Примечание: pyTelegramBotAPI – библиотека, необходимая для обеспечения работы Telegram-бота, но это не единственное такого рода решение. В качестве альтернативы можете использовать telegram-bot – соответствующая команда для установки указана ниже. По этой библиотеке можно найти довольно много инструкций в интернете, но в нашем случае она работала некорректно.
pip install python-telegram-bot
Откройте редактор кода и сделайте следующее:
-
Прежде всего импортируйте в него установленную на предыдущем шаге библиотеку. В случае с pyTelegramBotAPI запрос должен выглядеть следующим образом: import telebot
Обратите внимание! Описанное выше, — это обязательная «основа» для будущего бота. Далее – пример простейшего кода команды запуска и ответа с пояснениями, в вашем случае это может и наверняка будет отличаться, так как зависит исключительно от поставленной задачи.
Пояснение: Это декоратор для функции send_welcome, который указывает, что она должна выполняться в случае, если пользователь отправляет команду /start. Когда это происходит, бот отвечает приветственным сообщением с текстом «Привет! Я простой бот, рад познакомиться!».
Пояснение: Этот обработчик, обозначенный декоратором echo_message, будет вызываться для всех текстовых сообщений, которые отправляют пользователи. Когда бот получает текстовое сообщение, он просто повторяет это сообщение обратно отправителю с помощью функции bot.reply_to().
Завершающая команда – запуск бота: if __name__ == «__main__»:
bot.polling()
Пояснение: Эта команда запускает бота и начинает прослушивать входящие обновления от Telegram. Как только пользователь отправит сообщение, обработчики, определенные ранее, будут вызваны и выполнят необходимые действия.
Шаг 4: Запуск и использование
Для того чтобы бот работал и был доступен к использованию в Telegram, его необходимо запустить. Сделать это можно с помощью любого варианта системной консоли, будь то «Командная строка», «PowerShell» или «Терминал».
-
Перейдите в папку с проектом вашего бота, зажмите клавишу «Shift» на клавиатуре, не отпуская ее, кликните правой кнопкой мышки (ПКМ) в пустой области и, далее, в зависимости от версии используемой операционной системы (в нашем примере – Windows 11) и/или ваших собственных пожеланий, выберите предпочтительный вариант консоли в контекстном меню.
Введите команду следующего вида и нажмите «Enter»: python your_telegram_bot.py ‘your_telegram_bot’ – название вашего бота, присвоенное ему при сохранении на последнем шаге предыдущей инструкции.
Примечание: Вместо выполнения двух предыдущих шагов вы можете самостоятельно запустить консоль, перейти из нее в папку с проектом и выполнить его запуск. Для этого поочередно введите и выполните следующие команды: cd путь_к_папке_с_проектом
python your_telegram_bot.py
Шаг 5: Хостинг
Для того чтобы Telegram-бот работал постоянно, даже когда ваш компьютер выключен и/или проект не запущен в консоли, его необходимо разместить на хостинге. Это не самая сложная задача, но и откровенно простой ее назвать нельзя. Причем важно отметить, что сделать это бесплатно на сегодняшний день не получится, по крайней мере, если не рассматривать ограниченные по времени и/или функциональности решения. А с учетом того, что использование и настройка в каждом отдельном случае существенно отличается (это может делаться на веб-сайте, в десктопной программе или консоли), предоставить универсальную инструкцию не получиться.
Единственное, что мы можем порекомендовать – ввести в поисковую систему запрос приблизительно указанного ниже вида и последовательно ознакомиться со всей доступной информацией по теме. Наверняка вы сможете отыскать подходящее предложение.
хостинг телеграм бот
Способ 2: Специализированный сервис
Альтернативой решению от Telegram и последующей самостоятельной разработке будет один из сторонних сервисов, который позволяет как создавать ботов, так и добавлять к ним дополнительную функциональность, причём последнее не требует навыков программирования. Одним из самых удобных решений такого рода является проект Manybot, которым мы и воспользуемся.
- Воспользуйтесь ссылкой выше, а после загрузки страницы нажмите на кнопку «Создать бота».
- Далее кликните «Открыть Manybot в Telegram».
Важно! Этот сервис работает только с клиентским приложением, веб-версия не поддерживается!
Источник: lumpics.ru
Создаем собственный текстовый квест в Telegram
Телеграм боты — это крутой способ взаимодействия с пользователем прямо в привычном ему мессенджере. Это гораздо быстрее и чаще удобнее, чем писать полноценное мобильное приложение. В этой статье мы постраемся создать собственного Telegram бота, который будет предлагать пользователю разыграть полноценный текстовый квест.
Нюансы сюжета вам придется продумать самостоятельно, ну а вся техническая часть — под катом!
Для начала давайте познакомимся с Telegram ботами, по ссылке представлено множество примеров таких программ, от прогноза погоды до общения с рандомным собеседником: https://uip.me/2016/04/50-popular-telegram-bots/.
Технически, телеграм бот — это программа, которая запущена на вашем компьютере и общается с серверами телеграма через интернет. Можно представить, что при регистрации бота, телеграм выделяет нам почтовый ящик, через который мы можем получать сообщения от пользователей и отправлять их им.
После получения токена нам потребуется установить библиотеку pyTelegramBotApi, как и обычно, это делается через pip:
pip install pytelegrambotapi
Пробуем создать бота
Давайте сделаем нашего первого бота — бота-попугая. На все сообщения он будет отвечать повторением.
Помимо текстовых сообщений, в телеграме есть команды, они начинаются со слэша, например, /start или /help . Их тоже можно обрабатывать.
Давайте добавим пояснение к нашему боту, которое объяснит пользователю, что он делает.
Взаимодействуем с несколькими пользователями одновременно
Предположим мы хотим сделать бота, которы будет запоминать какую-то фразу, а затем по просьбе пользователя напоминать ее ему. Чтобы решить эту задачу, нам понадобится где-то хранить последнее сообщение пользователя.
Если мы будем использовать переменную, то сможем сохранить сообщение только одного пользователя. Например, Вася попросил запомнить слово kitten . Мы положим эту строку в переменную note . А затем Петя, попросить запомнить слово puppy , и мы снова положим это переменную note . Когда Вася попросит нам напомнить его последнее сообщение, мы напишем ему puppy вместо kitten . Совершенно не годится!
> Удобнее всего хранить все данные, которые привязаны к конкретному пользователю в словаре. Ключем в этом словаре будет id пользователя, а значением — произвольные данные.
Предположим, что наш словарь называется notes — заметки. Теперь, когда Вася (id88000) пришлет слово kitten мы положим его в notes[88000] , а слово puppy от Пети (id5300) — в notes[5300] . Посколько теперь мы используем разные переменные для хранения слова, сообщения от разных пользователей не будут путаться.
Реализация:
Добавляем кнопки
Следующий пример демонстрирует, как добавить несколько кнопок к сообщению и реагировать на их нажатия.
Собираем текстовый квест
Источник: geekclass.ru