kirin-bear/uiscom-api-client 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

kirin-bear/uiscom-api-client

最新稳定版本:v1.8.0

Composer 安装命令:

composer require kirin-bear/uiscom-api-client

包简介

PHP client for UIS Api

README 文档

README

Пример использования:

use \CBH\UiscomClient\Configuration\Configuration;
use \CBH\UiscomClient\ApiFactory;

...

$httpClient = new GuzzleHttp\Client();
$config = new Configuration($httpClient);

// Если необходимо логировать работу клиента — можно передать объект,
// реализующий интерфейс Psr\Log\LoggerInterface
$logger = new Monolog\Logger('log_channel');
$config->setLogger($logger);

// Создаем api клиент
$apiClient = ApiFactory::makeApiClientWithApiKey('api_key', $config);

...

// Пример обращения к методу start.simple_call сервиса CallApi
// https://comagic.github.io/call-api/#start.simple_call
try {
    $call = $apiClient->callApi()->getSimpleCall();
    $call->setOperatorFirst();
    $call->setContactPhone('71111111111');
    $call->setOperatorPhone('72222222222');
    ...
    $callSessionEntity = $call->execute();
} catch (CBH\UiscomClient\Exceptions\BaseException $e) {
    ...
}
Можно передать параметры через конструктор
$params = [
    'first_call' => 'operator',
    'contact'    => '71111111111',
    'operator'   => '72222222222',
    ...
];
try {
    $call = $apiClient->callApi()->getSimpleCall($params);
    $callSessionEntity = $call->execute();
} catch (CBH\UiscomClient\Exceptions\BaseException $e) {
    ...
}
Пример отчета по звонкам
$config = new \CBH\UiscomClient\Configuration\Configuration(new GuzzleHttp\Client());
$apiClient = \CBH\UiscomClient\ApiFactory::makeApiClientWithApiKey('api_key', $config);

try {
    $callsReport = $apiClient->dataApi()->getCallsReport();

    $callsReport->setPaginator(new \CBH\UiscomClient\Services\DataApi\Pagination\Paginator(20));

    $callsReport->setFields([
        \CBH\UiscomClient\Services\DataApi\Fields\Call::CALL_SESSION_ID,
        \CBH\UiscomClient\Services\DataApi\Fields\Call::CALL_API_EXTERNAL_ID,
    ]);

    $callsReport->setDateFrom(new DateTime('2020-04-20 00:00:00'));
    $callsReport->setDateTill(new DateTime('2020-04-20 23:59:00'));

    $filter = new \CBH\UiscomClient\Services\DataApi\Filters\FilterWrapper(
        \CBH\UiscomClient\Services\DataApi\Filters\FilterWrapper::AND_COND
    );

    $filter->addFilter(new \CBH\UiscomClient\Services\DataApi\Filters\Filter(
        \CBH\UiscomClient\Services\DataApi\Fields\Call::SOURCE,
        \CBH\UiscomClient\Services\DataApi\Filters\Comparison::EQUAL,
        \CBH\UiscomClient\Constants::CALL_SOURCE_CALL_API
    ));
    $filter->addFilter(new \CBH\UiscomClient\Services\DataApi\Filters\Filter(
        \CBH\UiscomClient\Services\DataApi\Fields\Call::CALL_API_EXTERNAL_ID,
        'like',
        '%some_id%'
    ));
    $callsReport->setFilter($filter);

    print_r($callsReport->execute());
} catch (\Exception $e) {
    ...
}
Пример отчета по расходам
$config = new \CBH\UiscomClient\Configuration\Configuration(new GuzzleHttp\Client());
$apiClient = \CBH\UiscomClient\ApiFactory::makeApiClientWithApiKey('api_key', $config);

try {
    $financeReport = $apiClient->dataApi()->getFinancialCallLegsReport();

    $financeReport->setPaginator(new \CBH\UiscomClient\Services\DataApi\Pagination\Paginator(20));

    $financeReport->setFields([
        \CBH\UiscomClient\Services\DataApi\Fields\FinancialCallLeg::CALL_SESSION_ID,
        \CBH\UiscomClient\Services\DataApi\Fields\FinancialCallLeg::TOTAL_CHARGE,
        \CBH\UiscomClient\Services\DataApi\Fields\FinancialCallLeg::START_TIME,
        \CBH\UiscomClient\Services\DataApi\Fields\FinancialCallLeg::BONUSES_CHARGE,
        \CBH\UiscomClient\Services\DataApi\Fields\FinancialCallLeg::COST_PER_MINUTE,
    ]);

    $financeReport->setDateFrom(new DateTime('2020-04-20 00:00:00'));
    $financeReport->setDateTill(new DateTime('2020-04-20 23:59:00'));

    $filter = new \CBH\UiscomClient\Services\DataApi\Filters\Filter(
        \CBH\UiscomClient\Services\DataApi\Fields\FinancialCallLeg::CALL_SESSION_ID,
        \CBH\UiscomClient\Services\DataApi\Filters\Comparison::EQUAL,
        123456789
    );

    $financeReport->setFilter($filter);

    print_r($financeReport->execute());
} catch (\Exception $e) {
    ...
}

Расширение клиента, собственной реализацией методов

На примере https://comagic.github.io/data-api/Account/

class GetAccount extends CBH\UiscomClient\Services\DataApi\Resources\AbstractDataApiResource
{
    /**
     * Имя метода ресурса, как он называется на стороне UIS
     *
     * @return string
     */
    public function getResourceName(): string
    {
        return 'get.account';
    }

    /**
     * @return string
     */
    public function getMethodName(): string
    {
        return 'getAccount';
    }

    public function buildParamsForRequest(): array
    {
        return [];
    }
}

...

$httpClient = new GuzzleHttp\Client();
$config = new Configuration($httpClient);
$apiClient = ApiFactory::makeApiClientWithApiKey('api_key', $config);

$apiClient->dataApi()->registerResource(new GetAccount());

统计信息

  • 总下载量: 952
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2023-04-18

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固