从用户名 Discord.py 获取用户 ID
Posted
技术标签:
【中文标题】从用户名 Discord.py 获取用户 ID【英文标题】:Get user id from username Discord.py 【发布时间】:2021-07-18 17:28:15 【问题描述】:我想制作一个程序来获取您输入的用户名的用户 ID。 这是我目前所拥有的:
from discord.ext import commands
client = commands.Bot(description="a", command_prefix=".", self_bot = False)
client.remove_command('help')
@client.event
async def on_ready():
user = await client.fetch_user("pirace#4637")
print(user)
client.run('token')
它给了我这个错误:
400 Bad Request (error code: 50035): Invalid Form Body
In user_id: Value "pirace#4637" is not snowflake.
有人知道我会怎么做吗?
【问题讨论】:
您已经暴露了您的机器人令牌。请编辑您的帖子以将其删除,您应该在 discord 开发者仪表板上重置它。 【参考方案1】:fetch_user
接受雪花或更简单的说法,id。可以通过以下方式获取具有用户名的用户:
@bot.command()
async def info(ctx, user:discord.User):
return await ctx.send(user.name)
这仅在用户与您的机器人共享公会并且区分大小写时才有效。因此,要么将有效的用户 ID 作为整数放入 bot.fetch_user
,要么使用我提供的代码
【讨论】:
【参考方案2】:如果你想使用用户名,你必须使用discord.utils.get()
,在这种情况下结合client.get_guild(GUILD_ID)
。
from discord.ext import commands
client = commands.Bot(description="a", command_prefix=".", self_bot = False)
client.remove_command('help')
@client.event
async def on_ready():
guild = client.get_guild(GUILD_ID)
user = discord.utils.get(guild.members, name="pirace", discriminator="4637")
print(user)
client.run('token')
【讨论】:
以上是关于从用户名 Discord.py 获取用户 ID的主要内容,如果未能解决你的问题,请参考以下文章