Python - 在用户加入时发送消息
Posted
技术标签:
【中文标题】Python - 在用户加入时发送消息【英文标题】:Python - Send Messages Upon User Joining 【发布时间】:2018-07-25 19:23:21 【问题描述】:所以,我正在尝试使用最新版本的 Discord.Py 和 Python 3.6.4 来检测用户何时加入,它会向他们发送一条欢迎他们的消息。我的代码如下:
@client.event
async def on_member_join(member):
await client.send_message(member,"Welcome!")
这段代码似乎不起作用,我已经查看了其他人是如何做到的,但是代码已经过时了,在 API 上也找不到关于我将如何做到这一点的任何内容。任何帮助表示赞赏!
主要编辑:好的,所以代码工作正常,但我收到 403 权限错误。 Bot 以 FULL PERMISSIONS 重新邀请,并且在服务器中具有 FULL PERMISSIONS。所以我不知道为什么会这样。 bot 可以随时随地发送消息,但不是专门在 on_memer_join(member) 下发送消息...为什么?
【问题讨论】:
“不起作用”是什么意思。你有任何错误吗?另外,您正在使用哪个 discord.py,重写还是异步?检查版本 我使用的是版本:0.16.2(我呃,假设是异步的)我刚刚运行了 pip install Discord.Py 【参考方案1】:discord.py 目前正在经历一些蜕变。有一个“async”分支,版本号 0.16,还有一个“rewrite”分支,版本号 1.0,虽然还没有完成,但是很多人已经开始使用了。要找出您正在使用哪个,只需尝试运行
import discord
print(discord.__version__)
您发布的代码对于“异步”分支看起来不错,所以我怀疑您在“重写”分支上。试试
@client.event
async def on_member_join(member):
await member.send("Welcome!")
重写分支的文档是here
【讨论】:
这对我不起作用,它继续给出错误:'Member' has no attribute 'send'(虽然我发誓确实如此) 你知道你使用的是哪个版本吗?您的原始代码给出了什么错误? 它给了我一个 403 权限被拒绝错误..“无法向该用户发送消息”版本 0.16.12 您的代码没有问题。当您将机器人添加到服务器时,您没有授予它发送私人消息所需的权限。从服务器中删除机器人并使用正确的权限再次添加它。 如何授予它权限?如果您的意思是在服务器中,它完全具有权限。我尝试重新邀请它,但它不要求任何权限,我需要写一些代码吗?【参考方案2】:对于 Discord.py 的重写版本,您需要启用 Intents
intents = discord.Intents.all()
client = Bot.commands(command_prefix = '', intents = intents)
async def on_member_join(member):
await member.send('Welcome!')
您还必须在机器人应用程序中启用意图。 抱歉,这是一个迟到的评论。
【讨论】:
以上是关于Python - 在用户加入时发送消息的主要内容,如果未能解决你的问题,请参考以下文章
(Discord 机器人)当用户加入 Discord 服务器(discord.js)时,如何发送欢迎消息?