Как в discord.py сделать интерактивную кнопку со ссылкой?

Для создания интерактивной кнопки со ссылкой в discord.py вы можете использовать модуль discord_components. Этот модуль добавляет поддержку взаимодействия с компонентами, включая кнопки.

Первым шагом, установите модуль discord_components, выполнив команду:

pip install -U discord-components

Затем, импортируйте необходимые модули в вашем коде:

import discord
from discord_components import DiscordComponents, Button, ButtonStyle

Для создания кнопки со ссылкой, вы можете использовать класс Button из модуля discord_components. Ниже приведен пример кода, который создает взаимодействующую кнопку со ссылкой:

@client.event
async def on_ready():
    # Инициализируем модуль discord_components
    DiscordComponents(client)

@client.command()
async def button_with_link(ctx):
    # Создаем кнопку со ссылкой
    button = Button(style=ButtonStyle.URL, label="Нажми меня!", url="https://example.com")

    # Отправляем сообщение с кнопкой на сервер
    msg = await ctx.send("Привет, нажми на кнопку!", components=[button])

    # Ждем нажатия кнопки
    interaction = await client.wait_for("button_click", check=lambda i: i.component == button and i.message == msg)

    # Отправляем сообщение, когда кнопка была нажата
    await interaction.respond(content="Кнопка была нажата!")

Обратите внимание, что функции on_ready и button_with_link должны быть объявлены внутри клиента (client). Метод DiscordComponents(client) используется для инициализации модуля discord_components.

В этом примере, при выполнении команды button_with_link будет создана кнопка со ссылкой "https://example.com", и когда пользователь нажимает на эту кнопку, в чате будет выведено "Кнопка была нажата!".

Вы можете настроить кнопку по своему усмотрению, изменяя аргументы style, label и url в конструкторе Button.

Однако, обратите внимание, что данная функциональность доступна только при использовании отдельного сервера bot (Shard) или Discord.js v12. Интерактивные кнопки с ссылками не поддерживаются в Discord.js v13 и Discord.py v2.