Адаптировано с видео Подготовка к написанию кода 1. Создаем папку, в которой будет храниться наш телеграм бот. Для этого вводим в консоль: mkdir TelegramStarsBot Python mkdir TelegramStarsBot По указанному выше пути у нас создастся папка с названием TelegramStarsBot. 2. Переходим в папку с ботом прописывая cd TelegramStarsBot\ Python cd TelegramStarsBot\ После этого все взаимодействия с консолью будут именно в нужной нам папке. 3. Клонируем гитхаб со стартовым ботом в git командой git clone [URL]https://github.com/Priler/telegramStarsBot[/URL] Python git clone [URL]https://github.com/Priler/telegramStarsBot[/URL] Чтобы команда заработала, нужно скачать git под свою OC, и выполнять команду из неё https://git-scm.com/downloads 4. Ставим нужные библиотеки командой pip install -r requirements.txt Python pip install -r requirements.txt Для виндовс нужна именно aiohttp[speedups]==3.9.5 версия Получаем токен бота и проверяем бота. 1. Переходим в бота BotFather 2. Создаем своего бота командой /newbot, даем ему имя и юзернейм. 3. Копируем наш токен и вставляем его в файл config.toml 4. Проверяем нашего бота, запуская файл bot.py Бот запустился, значит, всё работает. Делаем тестовый донат. Делаем тестовый возврат Всё, теперь вы можете принимать донаты! Бота можно затестить по ссылке - https://t.me/zvezdalolzabot Осторожнее, в моем боте /refund вырезаны. Чтобы вырезать /refund заходим в папку handlers и открываем файл personal_actions.py Находим код ниже и удаляем его @router.message(Command("paysupport")) async def cmd_paysupport(message: Message, l10n: FluentLocalization): await message.answer(l10n.format_value("donate-paysupport-message")) @router.message(Command("refund")) async def cmd_refund(message: Message, bot: Bot, command: CommandObject, l10n: FluentLocalization): # ID транзакции для рефанда # по ней можно понять, какой товар/услугу возвращает человек # и по правилам ТГ, вы можете ОТКАЗАТЬ в рефанде # но только в том случае, если условия отказа прописаны в Terms of Service вашего бота # ... # для примера, мы будем разрешать любой возврат звезд в любое время t_id = command.args # чекаем, указан ли ID транзакции if t_id is None: await message.answer(l10n.format_value("donate-refund-input-error")) return # пытаемся сделать рефанд try: await bot.refund_star_payment( user_id=message.from_user.id, telegram_payment_charge_id=t_id ) await message.answer(l10n.format_value("donate-refund-success")) except TelegramBadRequest as e: err_text = l10n.format_value("donate-refund-code-not-found") if "CHARGE_ALREADY_REFUNDED" in e.message: err_text = l10n.format_value("donate-refund-already-refunded") await message.answer(err_text) return Python @router.message(Command("paysupport")) async def cmd_paysupport(message: Message, l10n: FluentLocalization): await message.answer(l10n.format_value("donate-paysupport-message")) @router.message(Command("refund")) async def cmd_refund(message: Message, bot: Bot, command: CommandObject, l10n: FluentLocalization): # ID транзакции для рефанда # по ней можно понять, какой товар/услугу возвращает человек # и по правилам ТГ, вы можете ОТКАЗАТЬ в рефанде # но только в том случае, если условия отказа прописаны в Terms of Service вашего бота # ... # для примера, мы будем разрешать любой возврат звезд в любое время t_id = command.args # чекаем, указан ли ID транзакции if t_id is None: await message.answer(l10n.format_value("donate-refund-input-error")) return # пытаемся сделать рефанд try: await bot.refund_star_payment( user_id=message.from_user.id, telegram_payment_charge_id=t_id ) await message.answer(l10n.format_value("donate-refund-success")) except TelegramBadRequest as e: err_text = l10n.format_value("donate-refund-code-not-found") if "CHARGE_ALREADY_REFUNDED" in e.message: err_text = l10n.format_value("donate-refund-already-refunded") await message.answer(err_text) return Перезапускаем бота и видим, что кнопка /refund перестала работать Копим нужное количество звёзд донатами и выводим
Почему каждый чих ты суешь в статьи? Этому добру место в разделе python, а не здесь. Не знаю зачем вывел git как доп инструмент, если можно просто скачать с сайта гитхаба. Это первое. Не понимаю зачем просто переписывать инструкцию, как использовать бота, если все уже указано в гите. Это второе.
Архистратиг, 12 уведов,я думал мне рут лям оформил и меня поздравляют, а тут 2 умнейших человека этой планеты ведут диалог