首页 > 解决方案 > 不确定当成员加入 Discord 服务器时如何让机器人发送消息

问题描述

首先,我尝试用谷歌搜索,但永远找不到答案,所以我在 stackoverflow 上。因此,我正在尝试向我的不和谐机器人添加问候效果,但似乎无法发送消息。我知道机器人没有发送消息,因为使用 message.channel.send 时未定义“消息”,但我不知道这样做的正确方法。

错误:

Traceback (most recent call last):
  File "C:\Users\Me\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "<string>", line 20, in on_member_join
NameError: name 'message' is not defined`)
import discord


bot = discord.Client() 

@bot.event
async def on_ready():
    print('Logged in')
    print("Username: %s" % (bot.user.name))
    print("Userid: %s" % (bot.user.id))

@bot.event
async def on_member_join(member):
    print(f'{member} has joined the server')
    await message.channel.send('{member} has joined the server'.format(message))

@bot.event
async def on_member_remove(member):
    print(f'{member} has left the server')
    await message.channel.send('{member} has left the server'.format(message))

bot.run(Token)

标签: pythondiscord.pydiscord.py-rewrite

解决方案


用于get_channel获取您的#welcome 频道,将其分配给变量,然后发送欢迎消息。

@client.event
async def on_member_join(member):
    channel = client.get_channel(730064641857683581)  # Replace with your Welcome channel ID
    await channel.send(f"{member} has joined the server")

推荐阅读