serhiy/pushover

轻量、简单、快速,同时功能全面的 Pushover API 包装器。

v1.6.0 2024-08-29 08:23 UTC

README

Build Status Latest Stable Version Total Downloads License

轻量、简单、快速,同时功能全面的 Pushover API 包装器。

特性

  • 消息 API (示例)
    • 图片附件
    • 用户设备名称
    • 消息标题
    • HTML 消息
    • 补充 URL 及其标题
    • 通知优先级
    • 通知声音(包括自定义声音)
    • 消息时间
    • 存活时间
  • 用户/组验证 API (示例)
    • 通过用户或组密钥验证
    • 通过用户和设备验证
  • 收据 API (示例)
    • 查询紧急优先级收据
    • 取消紧急优先级重试
  • 组 API (示例)
    • 创建组
    • 列出组
    • 检索组信息
    • 添加/移除用户
    • 启用/禁用用户
    • 重命名组
  • 概览 API (示例)
    • 标题
    • 文本
    • 副文本
    • 计数
    • 百分比
  • 许可 API (示例)
    • 检查剩余信用额度
    • 分配许可(未测试)
  • 订阅 API (示例)
    • 用户密钥迁移

入门

以下说明将帮助您启动和运行项目副本。

安装

composer require serhiy/pushover

需求

我旨在使项目尽可能简单。您只需要 PHP 支持的版本以及其 curl 和 json 扩展即可运行它。参见项目 composer.json 文件的 require 部分

{
    "require": {
        "php": ">=8.2",
        "ext-curl": "*",
        "ext-json": "*"
    }
}

发送消息

实例化推送应用和通知接收者

use Serhiy\Pushover\Application;
use Serhiy\Pushover\Recipient;

$application = new Application('replace_with_pushover_application_api_token');
$recipient = new Recipient('replace_with_pushover_user_key');

或使用依赖注入将它们注入到您的应用服务中。

编写消息

use Serhiy\Pushover\Api\Message\Message;

$message = new Message('This is a test message', 'This is a title of the message');

创建通知

use Serhiy\Pushover\Api\Message\Notification;

$notification = new Notification($application, $recipient, $message);

推送

/** @var \Serhiy\Pushover\Client\Response\MessageResponse $response */
$response = $notification->push();

提示

有关更多代码示例,请参阅项目根目录中的 examples 文件夹。

处理响应

客户端返回响应对象。检查消息是否被接受很容易

if ($response->isSuccessful()) {
    // ...
}

可以获取 Pushover 返回的状态和令牌

$response->getRequestStatus();
$response->getRequestToken();

或者甚至是未经修改的 API JSON 响应(如果需要,将其解码到数组中)

$response->getCurlResponse();

响应还包含原始请求对象

/** @var \Serhiy\Pushover\Client\Request\Request $request */
$request = $response->getRequest();

请求包含 CURLOPT_POSTFIELDS curl 参数和完整的 API URL 数组。

$request->getCurlPostFields();
$request->getApiUrl();

提示

有关完整示例,请参阅 ResponseExample.php

贡献

欢迎贡献。如果您想添加功能,在开始工作之前,请打开一个问题来讨论您想要工作的功能。

有关详细信息,请阅读 CONTRIBUTING.md

许可

本项目遵循MIT许可协议 - 详细内容请参阅LICENSE文件。

致谢

Pushover API有很多PHP封装库。然而,大多数似乎已被放弃,缺少功能或需要额外的库才能运行。尽管如此,许多封装库还是激发了我开发这个项目的灵感。