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

Discord机器人无法给成员发送私信问题求助

解决Discord机器人私信嵌入消息失效问题

排查方向1:参数覆盖与命令触发验证

你的代码将传入的message参数强制赋值为"hello",这虽不直接导致失效,但可先添加触发反馈和错误捕获,确认命令是否正常执行:

@client.command()
async def message(ctx, user: discord.Member, *, message=None):
    await ctx.send(f"尝试给{user.display_name}发送私信...")
    embed = discord.Embed(title="hello")
    try:
        await user.send(embed=embed)
        await ctx.send("私信发送成功!")
    except Exception as e:
        await ctx.send(f"发送失败:{str(e)}")

添加这段代码后,能直接看到命令是否触发,以及失败的具体原因(比如权限问题、用户设置拦截等)。

排查方向2:用户私信设置与机器人权限

  • 目标用户可能开启了「仅接受好友私信」或「阻止服务器成员私信」,这种情况下机器人无法发送私信且无报错。
  • 检查目标用户是否拉黑了机器人,或关闭了来自服务器机器人的私信权限。

排查方向3:命令调用格式

调用命令时必须正确传递用户参数,比如使用!message @目标用户名,确保user参数能正确解析为discord.Member对象。如果用户不在当前服务器,或@提及格式错误,会导致参数解析失败,命令无响应。

排查方向4:Intents配置验证

即使你启用了所有Intents,需确认Members Intent已在Discord开发者门户的机器人页面开启,且代码中正确加载:

intents = discord.Intents.all()
client = commands.Bot(command_prefix='!', intents=intents)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 21:52:31