Задать вопрос
@Felihita

Почему не работает выдача ссылки в боте телеграмма?

что я делаю не так

from aiogram import Bot, Dispatcher, executor, types
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton

bot = Bot(token="6282093031:AAEns9DbOmPX90u0x45j_x8ZZXrbG88yLJg")
dp = Dispatcher(bot)

start_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
start_keyboard.add("Купить подписку")

confirm_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
confirm_keyboard.add("Да", "Нет")

cancel_keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
cancel_keyboard.add("Отмена")

# Создаем хэндлер для команды /start
@dp.message_handler(commands=["start"])
async def start(message: types.Message):
    # Приветствуем пользователя и предлагаем купить подписку
    await message.answer("Привет! Я бот, который предлагает тебе подписку на крутой сервис.\n"
                         "Чтобы купить подписку, нажми на кнопку ниже.", reply_markup=start_keyboard)

# Создаем хэндлер для кнопки "Купить подписку"
@dp.message_handler(lambda message: message.text == "Купить подписку")
async def buy_subscription(message: types.Message):
    # Переводим пользователя в состояние ожидания скриншота оплаты
    # Просим пользователя отправить скриншот оплаты
    await message.answer("Отлично! Чтобы купить подписку, тебе нужно оплатить ее через сервис QIWI.\n"
                         "Стоимость подписки - 100 рублей на месяц.\n"
                         "Номер кошелька - +79991234567.\n"
                         "После оплаты отправь мне скриншот чека.", reply_markup=cancel_keyboard)

@dp.message_handler(content_types=types.ContentType.PHOTO)
async def process_screenshot(message: types.Message):
    # Forward the received photo to your bot
    forwarded_message = await message.forward(chat_id=)

    # Send a message to the bot owner about the new user with the option to approve
    bot_owner_id =  
    approval_message = await bot.send_message(
        chat_id=bot_owner_id,
        text=f"Пользователь {message.from_user.full_name} ({message.from_user.id}) прислал скриншот. Одобрить подписку?",
        reply_markup=InlineKeyboardMarkup(
            inline_keyboard=[
                (
                    InlineKeyboardButton("Одобрить",
                                         callback_data=f"approve_{message.from_user.id}_{forwarded_message.message_id}"),
                )
            ]
        )
    )

@dp.callback_query_handler(lambda c: c.data.startswith("approve_"))
async def process_approve(callback_query: types.CallbackQuery):
    user_id, forwarded_message_id = callback_query.data.split("_")[1:]
    user_id = int(user_id)
    forwarded_message_id = int(forwarded_message_id)

    # Approve the chat join request
    await bot.approve_chat_join_request(chat_id=callback_query.message.chat.id, user_id=user_id)

    # Send the private channel link to the user
    private_channel_link = 
    await bot.send_message(chat_id=user_id, text=f"Ваша подписка одобрена! Вот ссылка на закрытый канал: {private_channel_link}")

    # Edit the approval message to show that the subscription has been approved
    await bot.edit_message_text(
        chat_id=callback_query.message.chat.id,
        message_id=callback_query.message.message_id,
        text=f"Подписка пользователя {user_id} одобрена.",
        reply_markup=None
    )


if name == 'main':
    executor.start_polling(dp)


Ошибка: Task exception was never retrieved
future: exception=BadRequest("Can't invite members to a private chat")>
Traceback (most recent call last):
File "C:\Users\gsv18\PycharmProjects\pythonProject4\venv\Lib\site-packages\aiogram\dispatcher\dispatcher.py", line 415, in _process_polling_updates
for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gsv18\PycharmProjects\pythonProject4\venv\Lib\site-packages\aiogram\dispatcher\dispatcher.py", line 235, in process_updates
return await asyncio.gather(*tasks)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gsv18\PycharmProjects\pythonProject4\venv\Lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
response = await handler_obj.handler(*args, **partial_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gsv18\PycharmProjects\pythonProject4\venv\Lib\site-packages\aiogram\dispatcher\dispatcher.py", line 283, in process_update
return await self.callback_query_handlers.notify(update.callback_query)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gsv18\PycharmProjects\pythonProject4\venv\Lib\site-packages\aiogram\dispatcher\handler.py", line 117, in notify
response = await handler_obj.handler(*args, **partial_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gsv18\PycharmProjects\pythonProject4\main.py", line 61, in process_approve
await bot.approve_chat_join_request(chat_id=callback_query.message.chat.id, user_id=user_id)
File "C:\Users\gsv18\PycharmProjects\pythonProject4\venv\Lib\site-packages\aiogram\bot\bot.py", line 2306, in approve_chat_join_request
return await self.request(api.Methods.APPROVE_CHAT_JOIN_REQUEST, payload)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gsv18\PycharmProjects\pythonProject4\venv\Lib\site-packages\aiogram\bot\base.py", line 236, in request
return await api.make_request(await self.get_session(), self.server, self.__token, method, data, files,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gsv18\PycharmProjects\pythonProject4\venv\Lib\site-packages\aiogram\bot\api.py", line 140, in make_request
return check_result(method, response.content_type, response.status, await response.text())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\gsv18\PycharmProjects\pythonProject4\venv\Lib\site-packages\aiogram\bot\api.py", line 115, in check_result
exceptions.BadRequest.detect(description)
File "C:\Users\gsv18\PycharmProjects\pythonProject4\venv\Lib\site-packages\aiogram\utils\exceptions.py", line 141, in detect
raise cls(description)
aiogram.utils.exceptions.BadRequest: Can't invite members to a private chat
  • Вопрос задан
  • 388 просмотров
Подписаться 1 Простой 9 комментариев
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
aiogram.utils.exceptions.BadRequest: Can't invite members to a private chat

Ты передаёшь в функцию ID приватного чата, а не комнаты. Проблема в этой строке.
await bot.approve_chat_join_request(chat_id=callback_query.message.chat.id, user_id=user_id)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы