khl.py khl.py
主页
文档
示例
  • khl.py (opens new window)
  • khl.py.docs (opens new window)
KOOK (opens new window)
主页
文档
示例
  • khl.py (opens new window)
  • khl.py.docs (opens new window)
KOOK (opens new window)
  • 机器人

    • 初始化
    • 命令
    • 定时任务
    • 在玩状态
  • 消息

    • 消息类型
    • 上传和发送文件或图片
    • 卡片消息
  • 频道

    • 获取频道对象
    • 主动发送消息
  • 用户

    • 获取机器人用户对象
    • 获取用户对象和发送私聊信息
      • 1.用户对象和服务器用户对象
      • 2.获取用户对象
      • 3.发送私聊信息
    • 机器人下线
  • 服务器

    • 获取服务器对象
    • 服务器角色操作
    • 设置用户昵称
  • 事件

    • 事件基础处理
  • 其他

    • KOOK客户端获取各类ID
    • 多文件注册机器人命令
    • 配置python的venv虚拟环境
    • 获取图片链接
    • 尝试自己调用api
    • OpenSSL本地证书无法获取错误
  • docs
  • 用户
musnows
2024-01-28
目录

获取用户对象和发送私聊信息

# 1.用户对象和服务器用户对象

在khl.py中,有User对象和GuildUser对象,后者除了用户的基本信息外,还包含了用户在服务器内的角色组和昵称等相关信息;

User对象因为没有明确服务器,所以不包含用户角色和昵称信息。

注意:机器人必须和用户至少同时在一个服务器内,且用户对机器人可见,机器人才能获取该用户信息。

# 2.获取用户对象

获取User对象和获取GuildUser对象的方式有所不同,后者需要先获取一个Guild对象,再调用Guild对象的fetch_user方法。

# 获取User对象
user = await bot.client.fetch_user("用户ID") 

# 获取GuildUser对象
guild =  await bot.client.fetch_guild("服务器ID")
guild_user = await guild.fetch_user("用户ID")

另外,@bot.command所修饰的命令处理函数中,msg.author的类型为GuildUser,是命令发起人的基本信息。

# 3.发送私聊信息

不管是User还是GuildUser对象,都可以调用send方法向用户发送私聊信息,参数可以为字符串或卡片消息。

user = await bot.client.fetch_user("用户ID") 
await user.send("消息内容") # 发送私聊

注意:用户的隐私设置中,必须允许服务器内其他用户发起私聊,机器人才能给用户发送信息,否则会403发送失败。该问题可以通过用户主动向机器人发送消息解除。

上次更新: 2024/01/28, 12:57:47
获取机器人用户对象
机器人下线

← 获取机器人用户对象 机器人下线→

Theme by Vdoing | Copyright © 2023-2025 khl.py | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式