python - 从命令中获取用户 ID
问题描述
有没有办法获取使用特定命令的人的用户 ID?
我试图做一个测试命令,看看我怎么能做到,但我似乎无法让它工作
@client.command()
async def icri(ctx, message):
await ctx.send(message.author.user_id)
我尝试完成这项工作,但是当我运行命令时,我!icri xyz
认为如果 xyz 被视为消息,它将返回用户 ID。但是当我运行它时,我收到一条错误消息,指出该函数缺少参数“消息”。
我的最终目标是创建一个命令,该命令将查找使用该命令的成员的用户 ID 并访问与其关联的字典项。如果我做这样的事情,我可以做到
@client.command()
async def icri(ctx, member):
await ctx.send(member.user_id)
但这是不切实际的,我也希望它是一个隐蔽的东西。
解决方案
在你的函数message
中只是你传递的一个参数。所以它不是message
对象。如果您收到消息,您可以使用ctx.message
. 还要看看这些:
ctx.guild => Server
ctx.channel => The text channel
ctx.message => The message
ctx.author => Who sent the message
ctx.author.id => User's id
您可以在https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#bots中获得更多信息
推荐阅读
- python-3.x - Merge a list of DataFrames on particular column
- javascript - Disallow .preventDefault() everywhere
- php - I have an error when trying to migrate Laravel database
- r - 在ggplot2中编辑R折线图中图例的标题
- angular - Angular 6 循环依赖
- vba - 如何复制一个单元格/几个单元格的内容(作为文本)以将其添加到另一个单元格中的现有文本中
- java - 为请求映射标头spring创建自定义注释
- javascript - Problem with table column width when ":invalid" styles applied to form controls
- android - Admob 和 GooglePlayGames 无法协同工作
- python - 使用 django-rest-framework 的密码哈希?