Для создания интерактивной кнопки со ссылкой в 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.