<p>我注意到了几件事:</p>
<p>您定义了<code>client</code>两次,这只会出错</p>
<p><strong>首先)</strong>删除<code>client = discord.Client()</code>,您不再需要它了</p>
<p>如果要向特定用户ID发送消息,则不能将其括在引号中。另外,您应该小心使用<code>fetch</code>,因为这样会向API发送请求,并且它们受到限制</p>
<p><strong>Second)</strong>将<code>await client.fetch_user("71123221123")</code>更改为以下内容:</p>
<pre class="lang-py prettyprint-override"><code>await client.get_user(71123221123) # No fetch
</code></pre>
<p>如果您有希望消息转到的<code>user</code>,则不需要创建另一个<code>DMChannel</code></p>
<p><strong>Third)</strong>将<code>await DMChannel.send()</code>转换为以下内容:</p>
<pre class="lang-py prettyprint-override"><code>await user.send("YourMessageHere")
</code></pre>
<p>您可能还需要启用<code>members</code>意图,下面是一些关于这方面的好文章:</p>
<ul>
<li><a href="https://discordpy.readthedocs.io/en/stable/intents.html" rel="nofollow noreferrer">https://discordpy.readthedocs.io/en/stable/intents.html</a></li>
<li><a href="https://stackoverflow.com/questions/64831017/how-do-i-get-the-discord-py-intents-to-work">How do I get the discord.py intents to work?</a></li>
</ul>
<p><strong>打开Intents后的完整代码可以是:</strong></p>
<pre class="lang-py prettyprint-override"><code>intents = discord.Intents.all()
client = commands.Bot(command_prefix=']', intents=intents)
@client.command(name='dmsend', pass_context=True)
async def dmsend(ctx):
user = await client.get_user(71123221123)
await user.send("This is a test")
client.run("YourTokenHere")
</code></pre>