You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

discord.py中suggestion命令触发线程创建失败问题求助

问题诊断与修复方案

你的代码核心问题在于错误地在频道上创建线程,而非关联到刚发送的建议消息上。Discord中针对特定内容的讨论线程,需要绑定到对应的消息才能和建议内容关联显示,否则即使创建了线程,也不会和建议消息绑定,导致看不到预期的讨论入口。

修复步骤

将创建线程的逻辑从频道对象调用,改为使用刚发送的建议消息对象调用:

原错误代码片段:

channel = bot.get_channel(int(1059976520376012811))
thread = await channel.create_thread(
name=f"{interaction.user}'s Suggestion Discussion")

修改为:

# 直接在刚发送的建议消息上创建关联线程
thread = await message.create_thread(
    name=f"{interaction.user}'s Suggestion Discussion",
    auto_archive_duration=1440  # 可选:设置线程自动归档时间(单位分钟,这里为24小时)
)

完整修正后的代码

@bot.tree.command(name="suggestion", description="Sends a suggestion to our suggestion channel!")
async def _suggestion(interaction, suggestion:str):
    channel = bot.get_channel(1059976520376012811)
    suggestEmbed = discord.Embed(color=0xFF5349)
    # 修正头像URL的获取方式,原写法无法返回有效链接
    suggestEmbed.set_author(name=f'New suggestion by {interaction.user}', icon_url=interaction.user.avatar.url)
    suggestEmbed.add_field(name='The suggestion is:', value=f'{suggestion}')

    message = await channel.send(embed=suggestEmbed)
  
    # 改用Unicode表情,避免字符串形式的表情识别失败
    await message.add_reaction('✅')
    await message.add_reaction('❌')

    # 在建议消息上创建绑定线程
    thread = await message.create_thread(
        name=f"{interaction.user}'s Suggestion Discussion",
        auto_archive_duration=1440
    )

    # 将建议内容同步到线程,方便讨论
    await thread.send(f"Discuss {interaction.user}'s suggestion!\n> {suggestion}")
  
    embed=discord.Embed(title="Successful!", color=0x23B425)
    embed.add_field(name="This command was successful.", value="Your suggestion was successfully posted in #suggestions", inline=False)

    await interaction.response.send_message(embed=embed)

额外注意事项

  • 权限检查:确保机器人在目标频道拥有创建公开线程和发送消息的权限。
  • 头像链接修正:原代码中f'{interaction.user.avatar}'无法返回有效头像URL,必须使用interaction.user.avatar.url,若用户无自定义头像,可添加默认头像 fallback 逻辑。
  • 表情使用::white_check_mark:这类字符串形式的表情可能无法被Discord正确识别,建议直接使用Unicode表情(如✅、❌),或通过bot.get_emoji(表情ID)获取服务器内的表情对象。

内容的提问来源于stack exchange,提问作者Justin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 15:45:35