rabotaru / zagruzka-connector
Загрузка 连接器
Requires
- php: >=7.2
- ext-json: *
- guzzlehttp/guzzle: 6.5.*|^7.4
- promphp/prometheus_client_php: ^2.1
- ramsey/uuid: ^4.1
Requires (Dev)
- micheh/phpcs-gitlab: ^1.1
- phpstan/phpstan: ^0.12
- phpstan/phpstan-phpunit: ^0.12
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-09-06 11:53:58 UTC
README
该库旨在通过Zagruzka.com服务发送消息。
消息通过Zagruzka服务的REST协议发送,关于Request对象中字段含义的详细信息,请参阅服务文档。
待办事项
未实现功能列表(将根据需求完成)
- Viber和Whatsapp消息(message/data/instantContent)
- Push通知的额外参数
- CascadeChainLink
- ScheduleInfo
- Sender类不仅适用于短信
发送短信的最简单用法
use RabotaRu\ZagruzkaConnector\Factory; use RabotaRu\ZagruzkaConnector\SMSSender; //Обычно CollectorRegistry у вас уже есть, вам надо получить его из вашего фреймворка. $registry = new \Prometheus\CollectorRegistry( new \Prometheus\Storage\APC(), false ); //Получим стандартный коннектор $connector = (new Factory())->defaultConnector( "https://zagruzka.com/api", "zagruzka_sender", $registry ); //И теперь сам отправщик $sender = new SMSSender( $connector, "login", "password", "MyService", //то, что будет отображаться как отправитель в СМС "https://myservice.com/callback_for_sms" //сюда будут приходить отчеты о доставке ); $sender->sendSMS("+79261234567", "Test SMS");
钩子
可以使用钩子进行额外的库处理(发送统计事件,日志记录)。为此,需要实现相应的接口。
RestPreSendHook - 在发送数据之前执行,应返回true或false。如果此钩子返回false,则不会进行发送 RestPostSendHook - 在发送数据后执行,不返回任何内容
请求
RabotaRu\ZagruzkaConnector\RestRequest\Request 类是Zagruzka.com API请求的对象表示。(可能不支持所有功能,请参阅 待办事项)。
创建类的示例
new Request( $id, $this->login, $this->password, $destAddr, new RequestMessage( new RequestMessageType(), new RequestMessageData( $text, $this->serviceName ) ), "https://myservice.com/callback_for_sms" );
响应
要接收响应,必须在请求中指定notifyUrl。您还可以在Zagruzka.com个人控制台中指定此类URL。
您可以使用连接器配置此端点以记录指标,以下提供三种选择
- 您只有json字符串:
processResponseByJson - 您的框架已经将其解析为数组:
processResponseByArray - 您的框架可能将其解析为库的
RabotaRu\ZagruzkaConnector\RestResponse\Response对象 - 此时请使用processResponse
还可以扩展什么
可以替换传输方式 - 只需实现 RabotaRu\ZagruzkaConnector\Transport\ITransport 接口,然后在实例化连接器时传递它。传输通过POST方法以json格式将数据发送到指定的URL,因此它可以用于发送事件到统计信息。
可以编写自己的指标收集器 - 只需实现 RabotaRu\ZagruzkaConnector\Metrics\IMetric 接口,然后在实例化连接器时传递它。
可以继承连接器并重定义其中的指标前缀常量。不建议创建自己的 IRestConnector 实现或重定义 ZagruzkaConnector 中的 sendByRest 方法,因为所有记录指标的逻辑都封装在那里。