使用interactions库的Discord斜杠命令发送Embed触发TypeError求助
修复方案
错误原因是你混用了discord.py的discord.Embed和interactions库的消息发送API,interactions库的ctx.send()不支持embed参数,且需要使用该库自身的Embed类。
具体修复步骤:
- 从
interactions库导入Embed,替代discord.Embed - 创建嵌入消息时使用
interactions.Embed - 发送时用
embeds参数(复数形式,接收列表),而非embed - 修正图片URL的引用错误(你之前写的是字符串
'url',应该用变量url)
修复后的完整代码:
import asyncio, json, requests, time, datetime, random, os from discord_components import Button, ButtonStyle, DiscordComponents, SelectOption, Select import interactions # 填入你的Bot Token bot = interactions.Client("YOUR_BOT_TOKEN") @bot.event async def on_ready(): print("Ready!") @bot.command(name="example", description="example description") async def example(ctx: interactions.CommandContext): response = requests.get('some url') json_data = response.json() url = json_data['url'] # 使用interactions库的Embed类 embed = interactions.Embed(color=0xff9900, title='') # 引用变量url,而非字符串'url' embed.set_image(url=url) # 用embeds参数传入嵌入消息列表 await ctx.send(embeds=[embed]) bot.start()
额外说明:
- 移除了未使用的导入(
discord、commands、tasks、files),精简代码 - 记得替换
YOUR_BOT_TOKEN为你的机器人实际Token
内容的提问来源于stack exchange,提问作者P1ck1e
相关产品推荐
相关产品推荐

