单击按钮后将字符串复制到剪贴板
Copy string to clipboard after button click
单击按钮后,我的 Discord 机器人应该将一个字符串复制到我的剪贴板。每次交互失败:
import clipboard
from discord_components import Button, DiscordComponents
@client.command()
async def command(ctx, *args):
# do some stuff
await ctx.send('message', components=[Button(label='Copy to clipboard', custom_id="copy_btn")])
@client.event
async def on_button_click(interaction):
if interaction.custom_id == 'copy_btn':
try:
print('try to copy string')
clipboard.copy('my string')
await ctx.send('string copied')
except Exception as e:
print('failed to copy string to clipboard\n' + e)
我的机器人在使用 command
时向我发送了一条带有按钮的消息。单击该按钮会将 try to copy string
打印到我的控制台,但不会复制 'my string'。没有例外。
pip install clipboard
成功了。
pip install discord-components
相同
除了这里可能存在一些深刻的误解之外,我在这里没有看到任何问题:您的代码与 运行 机器人的机器的剪贴板交互,而不是单击按钮的客户端- discord 不提供任何此类功能。
通过将 try
块中对 send
的调用更改为
,您应该能够轻松判断它是否正常工作
await ctx.send(clipboard.paste())
单击按钮后,我的 Discord 机器人应该将一个字符串复制到我的剪贴板。每次交互失败:
import clipboard
from discord_components import Button, DiscordComponents
@client.command()
async def command(ctx, *args):
# do some stuff
await ctx.send('message', components=[Button(label='Copy to clipboard', custom_id="copy_btn")])
@client.event
async def on_button_click(interaction):
if interaction.custom_id == 'copy_btn':
try:
print('try to copy string')
clipboard.copy('my string')
await ctx.send('string copied')
except Exception as e:
print('failed to copy string to clipboard\n' + e)
我的机器人在使用 command
时向我发送了一条带有按钮的消息。单击该按钮会将 try to copy string
打印到我的控制台,但不会复制 'my string'。没有例外。
pip install clipboard
成功了。
pip install discord-components
除了这里可能存在一些深刻的误解之外,我在这里没有看到任何问题:您的代码与 运行 机器人的机器的剪贴板交互,而不是单击按钮的客户端- discord 不提供任何此类功能。
通过将 try
块中对 send
的调用更改为
await ctx.send(clipboard.paste())