在使用
discord.py
编写机器人时,我意识到开发人员可以非常轻松地记录通过侦听器 on_message
传递的所有消息。
在监听中调用一个简单的
logging
,例如:
@commands.Cog.listener()
async def on_message(self, message):
logger.debug(f"Message received from {message.author} in {message.guild.name}: {message.content}")
# ...
由于在该机器人所在的通道中发送的所有消息都会通过此侦听器,因此上面的 3 行将允许有权访问机器人内部日志的开发人员“侦听”在该机器人存在的任何通道中写入的任何内容。
如果机器人在公会/服务器中被授予管理员权限(因为这是必需的或错误的),从而允许服务器中的所有频道都被转录到日志中,那么情况会更加严重。
这是正确的吗?我的机器人做错了什么吗?
我编写我的机器人并不是为了监视其他公会/服务器,但我意识到这将是多么容易,并且我想了解我是否基本上是在编写一个间谍机器人,或者如果有一种方法可以对我的用户更加公平。我也想避免这样做的指控或(可能有点牵强)甚至法律后果
是的,机器人访问消息内容会对 Discord 用户的隐私构成风险。这就是为什么经过验证的 Discord 机器人(您必须经过验证才能位于 100 多个服务器上)现在必须申请特权意图才能访问消息内容。