Telegram ботыБоты
Создание Telegram-бота для загрузки изображений на Telegra.ph
Содержание страницы
В этой статье мы создадим Telegram-бота на Python, который будет получать изображения от пользователя и загружать их на Telegra.ph, а затем возвращать прямую ссылку на изображение.
Подготовка окружения
Для начала, установите необходимые библиотеки:
pip install aiogram pytelegraph
Создание бота и настройка токена
- Создайте бота в @BotFather и получите токен.
- В файле
config.py
сохраните токен:
TOKEN = 'your_bot_token'
Реализация бота
Создайте файл main.py
и импортируйте необходимые библиотеки:
import logging
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.types import ParseMode
from aiogram.utils import executor
from pytelegraph import Telegraph
from config import TOKEN
Настройте логирование:
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
Создайте экземпляры бота и диспетчера:
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
Создайте экземпляр Telegraph
и авторизуйтесь с помощью метода create_account
:
telegraph = Telegraph()
telegraph.create_account(short_name='YourBotName')
Создайте обработчик команды /start
:
@dp.message_handler(commands=['start'])
async def cmd_start(message: types.Message):
await message.reply("Привет! Отправь мне изображение, и я загружу его на Telegra.ph и верну ссылку на него.")
Создайте обработчик для получения изображений:
@dp.message_handler(content_types=['photo'])
async def process_photo(message: types.Message):
photo = message.photo[-1]
photo_path = await bot.download_file_by_id(photo.file_id)
with open(photo_path, 'rb') as photo_file:
telegraph_upload = telegraph.upload_file([photo_file])
photo_url = f'https://telegra.ph{telegraph_upload[0]}'
await message.reply(f'Ваше изображение загружено на Telegra.ph:\n{photo_url}', parse_mode=ParseMode.HTML)
Запустите бота:
if __name__ == '__main__':
from aiogram import executor
executor.start_polling(dp, skip_updates=True)
Теперь ваш бот готов к работе! Отправьте ему фотографию, и он загрузит ее на Telegra.ph и вернет прямую ссылку на изображение.