Skip to content

botuniverse/php-libonebot

Repository files navigation

Version GitHub Workflow Status License Packagist PHP Version Support

php-libonebot

PHP 的 LibOneBot 库。LibOneBot 可以帮助 OneBot 实现者快速在新的聊天机器人平台实现 OneBot v12 接口标准。

基于 LibOneBot 实现 OneBot 时,OneBot 实现者只需专注于编写与聊天机器人平台对接的逻辑,包括通过长轮询或 webhook 方式从机器人平台获得事件,并将其转换为 OneBot 事件,以及处理 OneBot 动作请求,并将其转换为对机器人平台 API 的调用。

此外,内部的通信方式有相应的抽象方法,你可以在 libob 的基础上开发或整合其他 Web 框架。

当前版本还在开发中,在发布正式版���前此库内的接口可能会发生较大变动。

开发进度见 更新日志

使用

composer require onebot/libonebot

尝试 Demo

在 require 下载 libob 库后,新建文件 demo.phpdemo.json,并在 demo.php 中写如下代码:

<?php

declare(strict_types=1);

require_once 'vendor/autoload.php';

$ob = new \OneBot\V12\OneBot('repl', 'qq', 'REPL-1');
$ob->setLogger(new \OneBot\Logger\Console\ConsoleLogger());
$ob->setDriver(
    // 此处也可以在 Linux 系统下安装 swoole 扩展后使用 SwooleDriver() 拥有协程能力
    new \OneBot\Driver\Workerman\WorkermanDriver(), 
    new \OneBot\Config\Repository('demo.json')
);
$ob->setActionHandlerClass(\OneBot\V12\Action\ReplAction::class);
$ob->run();

demo.json 中写如下代码:

{
    "lib": {
        "db": false
    },
    "communications": {
        "http": {
            "enable": true,
            "host": "0.0.0.0",
            "port": 9600,
            "event_enabled": true,
            "event_buffer_size": 0
        }
    }
}

此 Demo 以一个命令行交互的方式使用 LibOneBot 快速完成了一个 OneBot 实现,命令行中输入内容即可发送到 OneBot,使用 HTTP 或 WebSocket 发送给 LibOneBot 后可以将信息显示在终端内。

# 运行 OneBot 实现
php demo.php

启动后可以利用 Postman 或 Curl 等工具发起请求,以 OneVot V12 协议的发送消息动作为例:

curl --location --request POST 'http://localhost:9600/' \
--header 'Content-Type: application/json' \
--data-raw '{
    "action": "send_message",
    "params": {
        "detail_type": "group",
        "group_id": "12467",
        "message": [
            {
                "type": "text",
                "data": {
                    "text": "我是文字巴拉巴拉巴拉"
                }
            }
        ]
    }
}'

你应该可以看到 OneBot 命令行中出现以下消息:

[2021-11-18 18:44:39] [INFO] 我是文字巴拉巴拉巴拉

并收到以下响应:

{"status":"ok","retcode":0,"data":{"message_id":5007842},"message":""}%

About

PHP 的 LibOneBot 库,助力 Onebot 多平台适配

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages