guolei19850528/laravel-device

这是一个基于 Laravel 框架的设备服务扩展,用于集成天津博瑞皓科 (Tjbrhk)设备服务。

Installs: 0

Dependents: 0

Suggesters: 0

Security: 0

pkg:composer/guolei19850528/laravel-device

v1.0 2026-02-05 02:10 UTC

This package is auto-updated.

Last update: 2026-02-05 02:11:43 UTC


README

License Laravel

项目简介

Laravel Device 是一个基于 Laravel 框架的设备服务扩展,用于集成天津博瑞皓科 (Tjbrhk)设备服务。该扩展提供了简洁的 API 接口,方便开发者与天津博瑞皓科的设备进行通信,目前主要支持消息发送功能。

主要功能

  • 与天津博瑞皓科设备服务进行通信
  • 支持发送设备消息
  • 支持多设备配置,可同时管理多个设备
  • 提供简洁的 API 调用方式
  • 配置灵活,支持通过 .env 文件管理敏感信息

技术栈

  • PHP 8.x
  • Laravel 7.x ~ 12.x
  • GuzzleHttp

安装方法

1. 安装依赖

通过 Composer 安装扩展:

composer require guolei19850528/laravel-device

2. 发布配置文件

安装完成后,使用以下命令发布配置文件:

php artisan vendor:publish --provider="Guolei19850528\Laravel\Device\ExtensionServiceProvider"

发布后,配置文件将保存在 config/device.php 中。

配置说明

1. 基础配置

打开 config/device.php 文件,根据实际情况配置天津博瑞皓科设备的相关参数:

return [
    'tjbrhk' => [
        'default' => [
            'id' => env('TJBRHK_DEVICE_ID', ''),
            'token' => env('TJBRHK_DEVICE_TOKEN', ''),
            'version' => '1',
            'baseUrl' => 'https://speaker.17laimai.cn/',
        ],
    ],
];

2. 环境变量配置

建议在 .env 文件中配置敏感信息:

TJBRHK_DEVICE_ID=your-device-id
TJBRHK_DEVICE_TOKEN=your-device-token

3. 多设备配置

扩展支持配置多个天津博瑞皓科设备实例,每个实例可以有独立的参数:

return [
    'tjbrhk' => [
        'default' => [
            'id' => env('TJBRHK_DEFAULT_DEVICE_ID', ''),
            'token' => env('TJBRHK_DEFAULT_DEVICE_TOKEN', ''),
            'version' => '1',
            'baseUrl' => 'https://speaker.17laimai.cn/',
        ],
        'device_a' => [
            'id' => env('TJBRHK_DEVICE_A_ID', ''),
            'token' => env('TJBRHK_DEVICE_A_TOKEN', ''),
            'version' => '1',
            'baseUrl' => 'https://speaker.17laimai.cn/',
        ],
        'device_b' => [
            'id' => env('TJBRHK_DEVICE_B_ID', ''),
            'token' => env('TJBRHK_DEVICE_B_TOKEN', ''),
            'version' => '1',
            'baseUrl' => 'https://speaker.17laimai.cn/',
        ],
    ],
];

使用示例

1. 基本使用

use Guolei19850528\Laravel\Device\Tjbrhk\Speaker;

// 创建设备实例
$speaker = new Speaker(
    id: config('device.tjbrhk.default.id'),
    token: config('device.tjbrhk.default.token'),
    version: config('device.tjbrhk.default.version'),
    baseUrl: config('device.tjbrhk.default.baseUrl')
);

// 发送消息
try {
    $result = $speaker->send(message: 'Hello, this is a test message from Laravel Device Extension!');
    if ($result) {
        echo '消息发送成功!';
    } else {
        echo '消息发送失败!';
    }
} catch (\Exception $e) {
    echo '发送过程中发生错误:' . $e->getMessage();
}

2. 在控制器中使用

use App\Http\Controllers\Controller;
use Guolei19850528\Laravel\Device\Tjbrhk\Speaker;

class DeviceController extends Controller
{
    /**
     * 发送设备消息
     */
    public function sendMessage()
    {
        // 从配置创建设备实例
        $config = config('device.tjbrhk.default');
        $speaker = new Speaker(
            id: $config['id'],
            token: $config['token'],
            version: $config['version'],
            baseUrl: $config['baseUrl']
        );
        
        // 消息内容
        $message = '欢迎光临!这是一条来自 Laravel Device 扩展的消息。';
        
        try {
            $result = $speaker->send($message);
            
            return response()->json([
                'status' => $result ? 'success' : 'error',
                'message' => $result ? '消息发送成功' : '消息发送失败'
            ]);
        } catch (\Exception $e) {
            return response()->json([
                'status' => 'error',
                'message' => '发送失败: ' . $e->getMessage()
            ], 500);
        }
    }
}

3. 使用自定义配置

use Guolei19850528\Laravel\Device\Tjbrhk\Speaker;

// 创建设备实例并手动设置参数
$speaker = new Speaker();
$speaker->setId('your-device-id')
        ->setToken('your-device-token')
        ->setVersion('1')
        ->setBaseUrl('https://speaker.17laimai.cn/');

// 发送消息
try {
    $result = $speaker->send('这是一条使用自定义配置发送的消息');
    echo $result ? '发送成功' : '发送失败';
} catch (\Exception $e) {
    echo '错误: ' . $e->getMessage();
}

API 文档

Speaker 类

构造函数

public function __construct(
    string|int $id = '',
    string $token = '',
    string|int $version = '1',
    string $baseUrl = 'https://speaker.17laimai.cn/'
)

参数说明:

发送消息

public function send(
    ?string $message = '',
    ?string $url = '/notify.php',
    ?array $urlParameters = [],
    ?array $options = [],
    ?\Closure $responseHandler = null,
    ?array $validatorRules = ['errcode' => 'required|integer|size:0']
): mixed

参数说明:

  • $message:要发送的消息内容
  • $url:API请求路径(默认:'/notify.php')
  • $urlParameters:URL参数数组
  • $options:HTTP请求选项
  • $responseHandler:响应处理回调函数
  • $validatorRules:响应验证规则(默认验证errcode为0)

返回值:

  • 成功返回true,失败返回false
  • 如果提供了自定义响应处理函数,则返回处理后的结果

配置方法

// 获取/设置设备ID
public function getId(): int|string
public function setId(int|string $id): static

// 获取/设置认证令牌
public function getToken(): string
public function setToken(string $token): static

// 获取/设置API版本号
public function getVersion(): int|string
public function setVersion(int|string $version): static

// 获取/设置API基础URL
public function getBaseUrl(): string
public function setBaseUrl(string $baseUrl): static

注意事项

  1. 确保已正确配置设备ID和认证令牌
  2. API默认地址为 https://speaker.17laimai.cn/,如果有变化请在配置中修改
  3. 发送消息时需要处理可能的异常情况
  4. 支持多设备配置,可以在同一项目中使用多个不同的设备

开发说明

项目结构

laravel-device/
├── config/
│   └── device.php                    # 配置文件
├── src/
│   ├── Tjbrhk/
│   │   └── Speaker.php               # 天津博瑞皓科设备类
│   └── ExtensionServiceProvider.php  # 服务提供者
├── vendor/
├── .gitignore
├── LICENSE
├── README.md
└── composer.json

核心类说明

  • Speaker:天津博瑞皓科设备通信类,提供消息发送功能
  • ExtensionServiceProvider:Laravel扩展服务提供者,用于注册扩展

版本历史

  • v1.0.0 (2026-02-05)
    • 初始版本
    • 实现天津博瑞皓科设备消息发送功能
    • 支持多设备配置
    • 提供简洁的API调用方式

许可证

本扩展采用 MIT 许可证,详情请查看 LICENSE 文件。

联系方式

贡献指南

欢迎提交 Issue 和 Pull Request 来帮助改进这个扩展!

更新日志

请查看 CHANGELOG.md 文件获取详细的更新日志。