Python 如何让机器人在加入新服务器时向我的帮会中的特定频道发送带有帮会邀请链接的消息?

Python 如何让机器人在加入新服务器时向我的帮会中的特定频道发送带有帮会邀请链接的消息?,python,discord.py,Python,Discord.py,因此,基本上我想要的是,每当我的机器人加入任何公会时,它都应该向我服务器中的特定频道发送一条消息,说明它被邀请到一个带有其名称的服务器,如果可能,还包括该服务器的邀请链接。我尝试了一些方法,但都没有真正起作用 @client.event async def on_guild_join(guild): channel = client.get_channel('736984092368830468') await channel.send(f"Bot was added

因此,基本上我想要的是,每当我的机器人加入任何公会时,它都应该向我服务器中的特定频道发送一条消息,说明它被邀请到一个带有其名称的服务器,如果可能,还包括该服务器的邀请链接。我尝试了一些方法,但都没有真正起作用

@client.event
async def on_guild_join(guild):
    channel = client.get_channel('736984092368830468')
    await channel.send(f"Bot was added to {guild.name}")
它不工作,并抛出以下错误:

Ignoring exception in on_guild_join
Traceback (most recent call last):
  File "C:\Users\Rohit\AppData\Roaming\Python\Python37\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "c:\Users\Rohit\Desktop\discord bots\test bot\main.py", line 70, in on_guild_join
    await channel.send(f"Bot was added to {guild.name}")
AttributeError: 'NoneType' object has no attribute 'send'

我真的不知道如何让机器人发送带有公会名称的公会邀请链接。

假设你的机器人拥有所需的权限,你将如何获得邀请、名称和公会图标

@client.event
async def on_guild_join(guild):
    channel = client.get_channel(745056821777006762)
    invite = await guild.system_channel.create_invite()

    e = discord.Embed(title="I've joined a server.")
    e.add_field(name="Server Name", value=guild.name, inline=False)
    e.add_field(name="Invite Link", value=invite, inline=False)
    e.set_thumbnail(url=guild.icon_url)
    await channel.send(embed=e)

假设您的机器人具有所需的权限,您将如何获得邀请、姓名和工会图标

@client.event
async def on_guild_join(guild):
    channel = client.get_channel(745056821777006762)
    invite = await guild.system_channel.create_invite()

    e = discord.Embed(title="I've joined a server.")
    e.add_field(name="Server Name", value=guild.name, inline=False)
    e.add_field(name="Invite Link", value=invite, inline=False)
    e.set_thumbnail(url=guild.icon_url)
    await channel.send(embed=e)

之所以您得到
'NoneType'对象没有属性'send'
异常,是因为您的机器人找不到提供的频道

这一行:

channel = client.get_channel('736984092368830468')
将不起作用,这是因为通道ID必须是整数,您可以尝试以下操作:

channel = client.get_channel(int(736984092368830468))

如果此操作仍然不起作用,请确保bot可以访问该频道,该频道存在并且提供的ID正确。

您获得
'NoneType'对象没有属性'send'
异常的原因是您的bot无法找到提供的频道

这一行:

channel = client.get_channel('736984092368830468')
将不起作用,这是因为通道ID必须是整数,您可以尝试以下操作:

channel = client.get_channel(int(736984092368830468))

如果此操作仍然不起作用,请确保bot可以访问该通道,该通道存在并且提供的ID正确。

尝试
通道=客户端。获取\u通道(736984092368830468)
通道为整数。不起作用@ThRnk已尝试尝试尝试
通道=客户端。获取\u通道(736984092368830468)
频道为整数。不起作用@ThRnk已经尝试过了