PythonTelegram ботыБоты

Создание Telegram-бота, взаимодействующего с API стороннего сервиса: Обзор библиотек Python

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={city}&appid=YOUR_OPENWEATHERMAP_API_KEY")
    data = response.json()
    description = data['weather'][0]['description']
    temp = int(data['main']['temp'] - 273.15)  # convert from Kelvin to Celsius
    return f"Weather in {city}: {description}, temperature: {temp}°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 и извлекает описание погоды и температуру для указанного города.

Использование библиотеки 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={city}&appid=YOUR_OPENWEATHERMAP_API_KEY")
    data = response.json()
    description = data['weather'][0]['description']
    temp = int(data['main']['temp'] - 273.15)  # convert from Kelvin to Celsius
    return f"Weather in {city}: {description}, temperature: {temp}°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, который взаимодействует с API стороннего сервиса, — это мощный способ расширить возможности вашего бота и сделать его еще более полезным для пользователей. Python и его библиотеки предоставляют простой и гибкий способ создания таких ботов.

2.4/5 - (5 голосов)

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

Back to top button