Бот для продажи подарков
Créé le : 8 mars 2025
Créé le : 8 mars 2025
напиши бота в телеграм который будет продавать телеграм подарки за телеграм звёзды
Чтобы создать Telegram-бота, который будет продавать подарки за Telegram Stars, тебе понадобится:
aiogram).Перейди в @BotFather и создай нового бота:
/newbotTOKEN для работы с Telegram APIНа сервере или локально установи:
shpip install aiogram
Создай файл bot.py:
pythonimport logging from aiogram import Bot, Dispatcher, types from aiogram.types import LabeledPrice from aiogram.utils import executor TOKEN = "ТВОЙ_ТОКЕН_ОТ_BOTFATHER" PAYMENT_PROVIDER_TOKEN = "ТВОЙ_ПЛАТЁЖНЫЙ_ТОКЕН" # Получи в @BotFather bot = Bot(token=TOKEN, parse_mode=types.ParseMode.HTML) dp = Dispatcher(bot) logging.basicConfig(level=logging.INFO) # Товары ITEMS = { "gift1": {"title": "Подарок 1", "description": "Описание подарка 1", "price": 100}, "gift2": {"title": "Подарок 2", "description": "Описание подарка 2", "price": 200}, } @dp.message_handler(commands=['start']) async def start(message: types.Message): keyboard = types.InlineKeyboardMarkup() for item_id, item in ITEMS.items(): keyboard.add(types.InlineKeyboardButton(f"{item['title']} - {item['price']}⭐", callback_data=item_id)) await message.answer("Выберите подарок:", reply_markup=keyboard) @dp.callback_query_handler(lambda c: c.data in ITEMS) async def process_payment(callback_query: types.CallbackQuery): item = ITEMS[callback_query.data] price = [LabeledPrice(label=item["title"], amount=item["price"] * 100)] # в копейках await bot.send_invoice( callback_query.from_user.id, title=item["title"], description=item["description"], provider_token=PAYMENT_PROVIDER_TOKEN, currency="RUB", prices=price, payload=callback_query.data ) @dp.pre_checkout_query_handler(lambda query: True) async def checkout(pre_checkout_query: types.PreCheckoutQuery): await bot.answer_pre_checkout_query(pre_checkout_query.id, ok=True) @dp.message_handler(content_types=types.ContentType.SUCCESSFUL_PAYMENT) async def successful_payment(message: types.Message): await message.answer("Спасибо за покупку! 🎁") if __name__ == '__main__': executor.start_polling(dp, skip_updates=True)
Сохрани код в bot.py и запусти:
shpython bot.py
Бот будет принимать Telegram Stars и выдавать подарки пользователям.
Если нужна помощь с доработкой или развертыванием, спрашивай!
напиши телеграм бота который отправляет stargifts телеграм подарки пользователям
Создание Telegram-бота, который отправляет Telegram StarGifts пользователям, требует использования Telegram Stars API и Payments API. Вот пошаговая инструкция по созданию такого бота:
aiogram).Установи нужные библиотеки:
shpip install aiogram
Создай файл stargift_bot.py:
pythonimport logging from aiogram import Bot, Dispatcher, types from aiogram.types import LabeledPrice from aiogram.utils import executor # 🔹 Токены TOKEN = "ТВОЙ_ТОКЕН_ОТ_BOTFATHER" PAYMENT_PROVIDER_TOKEN = "ТВОЙ_ПЛАТЁЖНЫЙ_ТОКЕН" # Получи в @BotFather bot = Bot(token=TOKEN, parse_mode=types.ParseMode.HTML) dp = Dispatcher(bot) logging.basicConfig(level=logging.INFO) # 🔹 Список доступных подарков (цены в Telegram Stars) STAR_GIFTS = { "gift1": {"title": "Золотая звезда", "description": "Золотая звезда в подарок!", "price": 100}, "gift2": {"title": "Серебряная медаль", "description": "Получите серебряную медаль!", "price": 200}, } @dp.message_handler(commands=['start']) async def start(message: types.Message): keyboard = types.InlineKeyboardMarkup() for gift_id, gift in STAR_GIFTS.items(): keyboard.add(types.InlineKeyboardButton(f"{gift['title']} - {gift['price']}⭐", callback_data=gift_id)) await message.answer("🎁 Выберите подарок:", reply_markup=keyboard) @dp.callback_query_handler(lambda c: c.data in STAR_GIFTS) async def send_gift(callback_query: types.CallbackQuery): gift = STAR_GIFTS[callback_query.data] price = [LabeledPrice(label=gift["title"], amount=gift["price"] * 100)] # Цена в копейках await bot.send_invoice( callback_query.from_user.id, title=gift["title"], description=gift["description"], provider_token=PAYMENT_PROVIDER_TOKEN, currency="RUB", prices=price, payload=callback_query.data ) @dp.pre_checkout_query_handler(lambda query: True) async def checkout(pre_checkout_query: types.PreCheckoutQuery): await bot.answer_pre_checkout_query(pre_checkout_query.id, ok=True) @dp.message_handler(content_types=types.ContentType.SUCCESSFUL_PAYMENT) async def successful_payment(message: types.Message): gift_id = message.successful_payment.invoice_payload gift = STAR_GIFTS.get(gift_id) if gift: await message.answer(f"🎉 Поздравляем! Вы получили подарок: {gift['title']}") if __name__ == '__main__': executor.start_polling(dp, skip_updates=True)
Сохрани код в stargift_bot.py и запусти:
shpython stargift_bot.py
/start.Если нужна помощь с доработкой или развертыванием, спрашивай! 🚀