极快搭建 QQ 聊天机器人--聊天机器人框架安装和搭建教程
使用到的工具
-
Deno:现代的 JavaScript 和 TypeScript 运行时。
-
Yoeth:一个轻巧、易用的 Deno 聊天机器人框架,支持 OneBot 12标准。
-
Walle-Q:一个 QQ 平台的 OneBot 协议实现端。
前期准备
安装 Deno(使用 PowerShell):
iwr https://deno.land/install.ps1 -useb | iex
下载 Yoeth 示例:
https://github.com/yoeth/yoeth_example
下载 Walle-Q:
https://github.com/abrahum/walle-q/releases
开始使用
运行 Walle-Q,按照提示进行登录。
运行 Yoeth 示例:
-
cd yoeth_example
-
deno task start
不出意料的话,机器人已经跑起来了。让我们发个消息试试吧。
代码解析
让我们来逐个解析示例内的几个文件。
打开 yoeth_example/yoeth.yml ,你会发现以下内容:
-
version: 0.1.4 # Yoeth 版本
-
bots:
-
- self_id: ~ # 机器人的账号(默认为空,为空时部分功能可能无法正常使用)
-
protocol: # 通信协议配置
-
websocket: # 正向 WebSocket 配置(应用端访问 OneBot 标准实现端)
-
- url: ws://127.0.0.1:9966 # 连接地址
-
access_token: ~ # 访问令牌(可选,默认为空)
-
reconnect_interval: 4 # 重连间隔,单位秒
-
disable: true # 此处为 true 时禁用
-
websocket_rev: # 反向 WebsScket 配置(OneBot 标准实现端访问应用端)
-
- host: 127.0.0.1 # 监听 IP
-
port: 8844 # 监听端口
-
access_token: ~
-
disable: false
-
http: # HTTP 配置(应用端访问 OneBot 标准实现端)
-
- url: http://127.0.0.1:9100/
-
access_token: ~
-
disable: true
-
disable: false # 此处为 true 时禁用
-
plugins:
-
- path: ./plugin/ping.js # 插件地址(支持网络地址)
-
disable: false # 此处为 true 时禁用
-
config: ~ # 自定义选项(默认为空)
-
- path: ./plugin/log.js
-
disable: false
-
config: ~
-
- path: ./plugin/ping2.js
-
disable: false
-
config: ~
打开 yoeth_example/plugin/ping.js ,你会发现以下内容:
-
export const type = 'message';
-
export const name = 'ping';
-
-
export function apply({ session, config, segment }) {
-
// 如果收到“天王盖地虎”,就回应“宝塔镇河妖”
-
if (session.content === "天王盖地虎") {
-
session.send("宝塔镇河妖");
-
}
-
}
打开 yoeth_example/plugin/log.js ,你会发现以下内容:
-
export const type = 'notice';
-
export const name = 'log';
-
-
export function apply({ session, config, segment }) {
-
console.log(session)
-
}
打开 yoeth_example/plugin/ping2.js ,你会发现以下内容:
-
export const name = 'ping2'
-
export const type = 'ctx'
-
-
export function apply({context, config, segment}) {
-
context.middleware(async (session, next) => {
-
if (session.content === '水能载舟') {
-
// 如果收到“水能载舟”,就回应“亦能覆舟”
-
// 我们可以直接发送纯文本
-
return '亦能覆舟'
-
} else if (session.content === '114') {
-
// 也可以发送消息段
-
let s = segment;
-
return s(s.text({ text: "5" }), s.space(), s.text({ text: "4" }))
-
} else {
-
return next()
-
}
-
})
-
}
相关链接
Yoeth 文档:
https://github.com/yoeth/yoeth_docs
Yoeth:
https://github.com/yoeth/yoeth
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgfeihe
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01