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)
  • 机器人

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

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

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

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

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

    • 事件基础处理
  • 其他

    • KOOK客户端获取各类ID
    • 多文件注册机器人命令
    • 配置python的venv虚拟环境
    • 获取图片链接
    • 尝试自己调用api
  • docs
musnows
2023-05-26
目录
准备点米:整个机器人
准备口锅:搭个机器人的运行环境
劈劈柴火:稍微了解一下 khl.py
写在后面

引言

# 引言

首先欢迎大家来使用 khl.py (opens new window)!如果有兴趣的话,也非常欢迎大家来一起开发和维护khl.py

本文档基于 khl.py 0.3.16 和 python 3.10.6

您可以在 musnows/khl.py.docs/tree/main/code (opens new window) 查看本文档教程中涉及到的代码

废话就不多说了,我们先来康康入门的准备工作有哪些:

# 准备点米:整个机器人

巧妇难为无米之炊,所以首先要做的事儿当然是整个机器人来啦,流程也很简单,只要三部

  1. 准备一个 kookapp.cn (opens new window) 的账号
  2. 来 服务器:「KOOK」开发者内测 (opens new window) 申请开发者内测权限(目前已不需要申请)
  3. 在 网页后台:开发者中心 - 应用 (opens new window) 创建一个「应用」,然后点开刚创建好的应用
    • 大家能在左侧的「设置」选项卡列表中看到一项「机器人」,点开它
    • 点开「机器人」选项卡后,就能看到机器人的信息以及「机器人连接模式」、「Token」两项重要选项
      • 「机器人连接模式」请设置为「websocket」,这是一种很好用的连接方式。当然,你也可以选择「webhook」。具体操作都会在初始化机器人章节讲解。
      • 「Token」是机器人的身份凭证,请不要上传到任何地方 / 告诉其他人 / 直接写进代码 / 上传到代码托管平台

# 准备口锅:搭个机器人的运行环境

巧妇有了,米有了,接下来就是要口锅来装米才行,而给 khl.py (opens new window) 用的「锅」也很好搭,两步即可:

  1. 安装 python,版本号>=3.6.8即可
    • 为什么是 3.6.8?因为 centos7 能直接通过 epel 安装 python 3.6.8,所以 centos 选手也不需要从源码编译了,直接通过 epel 安装即可,很方便;
    • 不过,还是建议安装较新版本的 python 3.10.x,参考 CentOS安装Python3.10教程 (opens new window);
  2. 运行以下命令来安装 khl.py (opens new window):
pip install khl.py

注意:如果你的机器上同时有多个版本的 python,要注意别装到错误版本的 python 里了

如果你的系统上安装的是 python 3.10.x,则应该用如下命令安装 khl.py

pip3.10 install khl.py

# 劈劈柴火:稍微了解一下 khl.py

我们下一页 文档 才会正式开始「做饭」,所以我们这里先简单地说说 khl.py (opens new window) 的特点,就当是准备点柴火和引子,方便大家之后「做起饭来」上手更快:

  1. khl.py (opens new window) 是全异步的 API 框架
    • 异步是个啥?这个问题就不展开说了,大家可以百度/谷歌一下「异步 同步」,两者对照起来学比较快
    • 这篇文章里对异步和同步的描述就比较形象 -> 对python async与await的理解 (opens new window)
  2. khl.py (opens new window) 使用 aiohttp (opens new window) 实现网络通信功能
    • 所以你可以直接让机器人用 aiohttp 来访问网站、获取资源,不需要再 import requests 了
    • aiohttp 也是全异步的网络框架,所以和我们的代码相性非常好
  3. 有时间的话,还可以搜搜「python asyncio」,因为 khl.py (opens new window) 可以很自然地联动 asyncio,来实现一些很炫的东西

# 写在后面

现在巧妇有了米、有了锅、有了柴火,大家可以准备来写几段了

talk is cheap, show me the code

正式开始开发之前,您还需要阅读 kook各类ID获取办法

先从 初始化机器人 开始吧!

上次更新: 2023/11/06, 22:59:45
Artalk ErrorFailed to load comments
TypeError: Failed to fetch


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