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
  • docs
  • 频道
musnows
2023-05-27
目录
1.获取频道对象
2.发送信息
3.示例

主动发送消息

大部分操作都需使用 Bot 对象来执行,请自行查看 Bot 对象初始化教程

# 1.获取频道对象

ch = await bot.client.fetch_public_channel("文字频道id")

# 2.发送信息

向频道内发送信息有两种办法

# 使用channel对象的send
ret = await ch.send("这是一个测试信息,使用了ch.send") # 方法1
print(f"ch.send | msg_id {ret['msg_id']}") # 方法1 发送消息的id

# 使用bot对象的client.send
ret = await bot.client.send(ch,"这是一个测试信息,使用了bot.client.send") # 方法2
print(f"bot.client.send | msg_id {ret['msg_id']}") # 方法2 发送消息的id

卡片消息也是相同的操作,传入 CardMessage 对象即可

# 3.示例

在这个机器人中,注册了一个 test 命令,执行此命令,机器人会往指定频道中,发送两条信息。并在控制台输出这两条信息的 msg_id

import traceback
from khl import Bot, Cert,Message,Channel
from utils.file import open_file


# 打开config.json
config = open_file('./config/config.json')

# 初始化机器人
bot = Bot(token=config['token'])  # 默认采用 websocket

@bot.command(name='test')
async def test_cmd(msg:Message):
    try:
        print("test cmd recv!")
        ch = await bot.client.fetch_public_channel("3105208745392823") # 获取指定频道

        # 使用channel对象的send
        ret = await ch.send("这是一个测试信息,使用了ch.send") # 方法1
        print(f"ch.send | msg_id {ret['msg_id']}") # 方法1 发送消息的id

        # 使用bot对象的client.send
        ret = await bot.client.send(ch,"这是一个测试信息,使用了bot.client.send") # 方法2
        print(f"bot.client.send | msg_id {ret['msg_id']}") # 方法2 发送消息的id
    except:
        print(traceback.format_exc()) # 打印报错详细信息


bot.run()

私聊机器人,发送 /test ,机器人将执行命令,往频道中发送信息

image-20230527213612911

控制台输出如下

test cmd recv!
ch.send | msg_id 00e6efd4-52be-41d3-8d5c-bc1dfb7ba1f0
bot.client.send | msg_id 9fe26ea2-6335-456d-8d4a-fad7e8d3c045
上次更新: 2024/01/24, 10:25:45
获取频道对象
获取机器人用户对象

← 获取频道对象 获取机器人用户对象→

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