discord bot 无法发送直接消息,在踢 (discord.py)
discord bot failing to send direct message, upon kicking (discord.py)
代码踢用户,但无法发送 DM
@bot.command()
async def kick(ctx,member : discord.Member, *, reason=None):
await member.kick(reason=reason)
await ctx.send(f'oh no- {member.mention} has been kicked :/')
message=f"You have been kicked from {ctx.guild.name}"
await member.send(message)
测试时:
- 被踢用户的私信已打开
- 机器人有管理员权限
控制台报错:
discord.ext.commands.errors.CommandInvokeError:命令引发异常:禁止:403 禁止(错误代码:50007):无法向该用户发送消息
如果您尝试直接向已禁用非朋友 DM 的用户发送消息,您将遇到 FORBIDDEN。
不要忘记处理异常:
try:
/* send message */
except Exception:
pass
我认为你需要在实际踢球之前发送消息。
否则,机器人无法处理用户。
所以,给用户发消息,踢他。
@bot.command()
async def kick(ctx,member : discord.Member, *, reason=None):
message=f"You have been kicked from {ctx.guild.name}"
await member.send(message)
await member.kick(reason=reason)
await ctx.send(f'oh no- {member.mention} has been kicked :/')
代码踢用户,但无法发送 DM
@bot.command()
async def kick(ctx,member : discord.Member, *, reason=None):
await member.kick(reason=reason)
await ctx.send(f'oh no- {member.mention} has been kicked :/')
message=f"You have been kicked from {ctx.guild.name}"
await member.send(message)
测试时:
- 被踢用户的私信已打开
- 机器人有管理员权限
控制台报错:
discord.ext.commands.errors.CommandInvokeError:命令引发异常:禁止:403 禁止(错误代码:50007):无法向该用户发送消息
如果您尝试直接向已禁用非朋友 DM 的用户发送消息,您将遇到 FORBIDDEN。
不要忘记处理异常:
try:
/* send message */
except Exception:
pass
我认为你需要在实际踢球之前发送消息。
否则,机器人无法处理用户。
所以,给用户发消息,踢他。
@bot.command()
async def kick(ctx,member : discord.Member, *, reason=None):
message=f"You have been kicked from {ctx.guild.name}"
await member.send(message)
await member.kick(reason=reason)
await ctx.send(f'oh no- {member.mention} has been kicked :/')