如何使用 discord.py 向服务器外的任何用户发送邀请 link 的 dm?

How to send a dm with invite link to any user outside of the server with discord.py?

我想使用 discord.py 制作一个 discord 机器人,它会使用他们的 ID 邀请服务器外的用户加入服务器?有什么办法可以做到吗?到目前为止我只有这个。

import discord
from discord.ext import commands
import os
from dotenv import load_dotenv

load_dotenv()

DISCORD_TOKEN = os.getenv("DISCORD_TOKEN")
intents = discord.Intents.default()
intents.members = True
client = discord.Client(intents=intents)

bot = commands.Bot(command_prefix='!', description='Bot')

@bot.command(pass_context = True)
async def invite(ctx, userToInvite):
        inviteLinq = await BSL.create_invite(destination = ctx.message.server, xkcd = True, max_uses = 1)
        target_user = user_id
        await BSL.send_message(target_user, inviteLinq)

bot.run(DISCORD_TOKEN)

显然这里有很多错误,因为机器人甚至无法工作。我似乎无法生成邀请 link 并将其发送给任何人。

discord 禁止机器人向服务器外部发送直接消息。

这是一个向用户发送私信的片段,其中包含 link 到服务器的邀请

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix='!', description='Bot')

@bot.command(name='dm',pass_context=True)
async def dm(ctx, *argument):
    #creating invite link
    invitelink = await ctx.channel.create_invite(max_uses=1,unique=True)
    #dming it to the person
    await ctx.author.send(invitelink)