Python don';我不知道为什么bot.send\u消息不工作

Python don';我不知道为什么bot.send\u消息不工作,python,discord,discord.py,Python,Discord,Discord.py,我有个问题,我真的不明白。这是我的密码: @bot.event async def on_member_join(member): print (member, " joined") embed = discord.Embed(title="{} just joined the server!".format(member.name), description="Welcome!", color=0x00ff00) #await bot.say(embed=embed)

我有个问题,我真的不明白。这是我的密码:

@bot.event
async def on_member_join(member):
    print (member, " joined")
    embed = discord.Embed(title="{} just joined the server!".format(member.name), description="Welcome!", color=0x00ff00)
    #await bot.say(embed=embed) // can't use this outside a command
    await bot.send_message(message.channel, embed=embed) # New - 4 Oct
错误:

File "/Users/marco/Desktop/spambot/bot.py", line 23, in on_member_join
    await bot.send_message(message.channel, embed=embed) # New - 4 Oct
NameError: name 'message' is not defined

有人知道我做错了什么吗?

您还没有在代码中的任何地方定义
消息
您需要通过使用
get\u channel(channel\u id)
获取一个频道,或者通过
member.server.channels
循环并选择具有所需属性的频道,来指定将消息发送到哪个频道

@bot.event
async def on_member_join(member):
    print (member, " joined")
    embed = discord.Embed(title="{} just joined the server!".format(member.name), description="Welcome!", color=0x00ff00)
    #await bot.say(embed=embed) // can't use this outside a command
    await bot.send_message(bot.get_channel("YOUR_CHANNEL_ID"), embed=embed) # New - 4 Oct

这正是错误所描述的。
message
应该是什么?是否可以让bot获取频道ID而不是硬编码?您需要给它一些参数,也许您有一个名为“欢迎”的频道,在那里显示这些消息,然后您可以执行类似于
discord.utils.get(message.server.channels,name=“Welcome”)的操作
discord.utils.get(member.server.channels,type=discord.ChannelType.text)
以前有一个功能可以获取服务器的
默认频道,但是discord删除了该功能,所以当您在加入成员时使用类似
的事件时,您必须指定想要哪个频道