【问题标题】:Get User Activity from User ID - Discord.py从用户 ID 获取用户活动 - Discord.py
【发布时间】:2021-08-08 00:08:29
【问题描述】:

我想从用户 ID 获取用户当前的活动(玩游戏、在线、离线)。我启用了所有意图。这是我的代码不起作用:

member1 = bot.get_user(5242612345674376)
print(member1.activity)

输出:

Initating BOT
'Bot Connected!'
Ignoring exception in on_ready
Traceback (most recent call last):
  File "C:\Users\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 343, in _run_event
    await coro(*args, **kwargs)
  File "d:\Projects\newtest.py", line 33, in on_ready
    print(member1.activity)
AttributeError: 'User' object has no attribute 'activity'

感谢任何形式的帮助

【问题讨论】:

  • 52426-USERID-74376 不是一个有效的 Python 标识符(变量名),但您正在使用它,就好像它是一个变量一样。所以我猜你打算用引号将它括起来,所以它被视为字符串文字。如果引用无法解决问题,请编辑您的帖子以包含 a minimal reproducible 代码摘录以及确切的输出或错误消息。
  • bot.get_channel() 这些取整数,我在中间写了 -USERID- 以隐藏实际的用户 ID 并更清楚地显示它。
  • 这就是你应该发布一个最小可重现示例的原因之一!
  • 添加输出并修复输入
  • User API 似乎没有像activity 这样的属性。但是Member API 可以。所以如果你使用get_member 而不是get_user,...

标签: discord discord.py


【解决方案1】:

您无法使用discord.User 获取用户活动。所以使用discord.Member:

user = bot.get_user(5242612345674376) # get user

mutual_guild = user.mutual_guilds[0]  # get a mutual server

member = discord.utils.get(mutual_guild.members(), id=user.id) 
# get user as a member with first mutual guild and id number

print(member.activity)

【讨论】:

  • 如果我的回答对你有帮助,你能把我的回答标记为正确答案吗?
【解决方案2】:

我想通了。这是代码

#Using it on on_message() or you can use GuildID or just guilds    
guild = bot.get_guild(message.guild.id)
#Member's UserID here  
member1 = guild.get_member(0123456789) 
print(member1.activities)

【讨论】:

    猜你喜欢
    • 2021-07-18
    • 1970-01-01
    • 2021-05-07
    • 2019-06-27
    • 1970-01-01
    • 2021-07-12
    • 2021-09-12
    • 2020-11-13
    • 1970-01-01
    相关资源
    最近更新 更多