phpinfo / smsfeedback
SmsFeedback 简单 SDK
1.1.0
2019-06-08 18:25 UTC
Requires
- php: ^7.1
- guzzlehttp/guzzle: ^6.0
- guzzlehttp/psr7: ^1.2
- psr/log: ^1.1
This package is auto-updated.
Last update: 2024-09-09 06:21:16 UTC
README
此组件允许您简单地对 smsfeedback.ru 基础 API 进行操作。
查看服务 API 文档 获取更多信息。
安装
composer require phpinfo/smsfeedback
简单用法
实例化 API 客户端最佳方式是使用 ApiClientBuilder
$client = ApiClientFactory::createApiClient('login', 'password'); $client->send('71234567', 'Some SMS Text');
您可以指定连接超时(以毫秒为单位)或 API 基础 URI
$client = ApiClientFactory::createApiClient('login', 'password', 'https://service.mock', 3000);
记录请求
SDK 构建器支持 psr/logger。 Monolog 使用示例
use Monolog\Handler\StreamHandler; use Monolog\Logger; $handler = new StreamHandler(STDOUT); $logger = new Logger('SmsFeedback', [$handler]); $client = ApiClientFactory::createApiClient('login', 'password', null, null, $logger); $client->balance();
输出
[2019-05-19 20:21:34] SmsFeedback.INFO: GET /messages/v2/balance HTTP/1.1 200 [] []
Symfony 4
查看 SmsFeedback Symfony 扩展包 以方便集成。
您也可以在您的依赖注入容器中使用 ApiClientFactory
SmsFeedback\ApiClientInterface: factory: ['SmsFeedback\Factory\ApiClientFactory', 'createApiClient'] arguments: $login: '%env(SMSFEEDBACK_LOGIN)%' $password: '%env(SMSFEEDBACK_PASSWORD)%'
发送短信
简单发送短信
$message = $client->send('79161234567', 'SMS Text');
响应对象
{ "id": "A133541BC", "status": "accepted" }
检索短信状态
$statuses = $client->status(['5169837636', '5169837647']);
[ { "id": "5169837636", "status": "delivered" }, { "id": "5169837647", "status": "delivery error" } ]
检索余额
$balances = $client->balance();
[ { "type": "RUB", "amount": 385.5, "credit": 0.0 } ]
检索发送者
$senders = $client->senders();
[ { "name": "SENDER", "status": "active", "comment": "Some sender comment" } ]
手动控制
SDK 在内部使用 Guzzle 6。您可以直接指定 Guzzle 参数
$client = ApiClientBuilder::create('login', 'password') ->setHttpClientParams( [ 'base_uri' => 'https://my-domain.com', 'timeout' => 5.2, ] ) ->getApiClient();
注意:Guzzle 参数将完全覆盖超时、基础 URI、记录器和授权功能。您必须手动指定所有内容。在某些情况下,这可能很有用。
授权中间件
$stack = HandlerStack::create(); $stack->push(function (callable $handler) use ($login, $password) { return new AuthorizationMiddleware($handler, $login, $password); }); $client = ApiClientBuilder::create() ->setHttpClientParams( [ 'base_uri' => 'http://api.smsfeedback.ru', 'timeout' => 5.0, 'handler' => $stack, ] ) ->getApiClient();
自定义授权中间件
$stack = HandlerStack::create(); $stack->push(function (callable $handler) use ($login, $password) { return function (RequestInterface $request, array $options) use ($handler, $login, $password) { $fn = $handler; $authHeader = sprintf('Basic %s', base64_encode($login . ':' . $password)); $request = $request->withHeader('Authorization', $authHeader); return $fn($request, $options); }; }); $client = ApiClientBuilder::create() ->setHttpClientParams( [ 'base_uri' => 'http://api.smsfeedback.ru', 'timeout' => 5.0, 'handler' => $stack, ] ) ->getApiClient();
记录器中间件
$stack = HandlerStack::create(); $logger = new Logger('SmsFeedback', [$handler]); $formatter = new MessageFormatter(MessageFormatter::SHORT); $stack->push(Middleware::log($logger, $formatter)); $client = ApiClientBuilder::create() ->setHttpClientParams( [ 'base_uri' => 'http://api.smsfeedback.ru', 'timeout' => 5.0, 'handler' => $stack, ] ) ->getApiClient();