• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

极快搭建 QQ 聊天机器人--聊天机器人框架安装和搭建教程

武飞扬头像
eyano
帮助1

使用到的工具

  • 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 示例:

  1.  
    cd yoeth_example
  2.  
    deno task start

不出意料的话,机器人已经跑起来了。让我们发个消息试试吧。

学新通

代码解析

让我们来逐个解析示例内的几个文件。

打开 yoeth_example/yoeth.yml ,你会发现以下内容:

  1.  
    version: 0.1.4 # Yoeth 版本
  2.  
    bots:
  3.  
    - self_id: ~ # 机器人的账号(默认为空,为空时部分功能可能无法正常使用)
  4.  
    protocol: # 通信协议配置
  5.  
    websocket: # 正向 WebSocket 配置(应用端访问 OneBot 标准实现端)
  6.  
    - url: ws://127.0.0.1:9966 # 连接地址
  7.  
    access_token: ~ # 访问令牌(可选,默认为空)
  8.  
    reconnect_interval: 4 # 重连间隔,单位秒
  9.  
    disable: true # 此处为 true 时禁用
  10.  
    websocket_rev: # 反向 WebsScket 配置(OneBot 标准实现端访问应用端)
  11.  
    - host: 127.0.0.1 # 监听 IP
  12.  
    port: 8844 # 监听端口
  13.  
    access_token: ~
  14.  
    disable: false
  15.  
    http: # HTTP 配置(应用端访问 OneBot 标准实现端)
  16.  
    - url: http://127.0.0.1:9100/
  17.  
    access_token: ~
  18.  
    disable: true
  19.  
    disable: false # 此处为 true 时禁用
  20.  
    plugins:
  21.  
    - path: ./plugin/ping.js # 插件地址(支持网络地址)
  22.  
    disable: false # 此处为 true 时禁用
  23.  
    config: ~ # 自定义选项(默认为空)
  24.  
    - path: ./plugin/log.js
  25.  
    disable: false
  26.  
    config: ~
  27.  
    - path: ./plugin/ping2.js
  28.  
    disable: false
  29.  
    config: ~
学新通

打开 yoeth_example/plugin/ping.js ,你会发现以下内容:

  1.  
    export const type = 'message';
  2.  
    export const name = 'ping';
  3.  
     
  4.  
    export function apply({ session, config, segment }) {
  5.  
    // 如果收到“天王盖地虎”,就回应“宝塔镇河妖”
  6.  
    if (session.content === "天王盖地虎") {
  7.  
    session.send("宝塔镇河妖");
  8.  
    }
  9.  
    }

打开 yoeth_example/plugin/log.js ,你会发现以下内容:

  1.  
    export const type = 'notice';
  2.  
    export const name = 'log';
  3.  
     
  4.  
    export function apply({ session, config, segment }) {
  5.  
    console.log(session)
  6.  
    }

打开 yoeth_example/plugin/ping2.js ,你会发现以下内容:

  1.  
    export const name = 'ping2'
  2.  
    export const type = 'ctx'
  3.  
     
  4.  
    export function apply({context, config, segment}) {
  5.  
    context.middleware(async (session, next) => {
  6.  
    if (session.content === '水能载舟') {
  7.  
    // 如果收到“水能载舟”,就回应“亦能覆舟”
  8.  
    // 我们可以直接发送纯文本
  9.  
    return '亦能覆舟'
  10.  
    } else if (session.content === '114') {
  11.  
    // 也可以发送消息段
  12.  
    let s = segment;
  13.  
    return s(s.text({ text: "5" }), s.space(), s.text({ text: "4" }))
  14.  
    } else {
  15.  
    return next()
  16.  
    }
  17.  
    })
  18.  
    }
学新通

相关链接

Yoeth 文档:

https://github.com/yoeth/yoeth_docs

Yoeth:

https://github.com/yoeth/yoeth

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfeihe
系列文章
更多 icon
同类精品
更多 icon
继续加载