- PHP >=8.3
composer require sazanof/novofon-api-v2
require 'vendor/autoload.php';
use Sazanof\NovofonApiV2\NovofonDataApi;
$app = NovofonDataApi::initialize('appid', 'token');с использованием дополнительных параметров для Guzzle Client:
$options = [
'verify'=>false
];
$app = NovofonDataApi::initialize(
'appid',
'token',
$options
);Простая
$app->filter->rule('phone_number', '=', '123456');Сложная
/** FILTER FOR SIP LINES */
$app->filter->group(function (\Sazanof\NovofonApiV2\Builder\FilterGroup $group) {
$group->or(function (\Sazanof\NovofonApiV2\Builder\FilterGroup $group) {
$group->add('phone_number', '=', '123456');
$group->add('phone_number', '!=', '666');
$group->or(function (\Sazanof\NovofonApiV2\Builder\FilterGroup $group) {
$group->add('phone_number', '=', '777');
$group->add('phone_number', '=', '9999');
});
});
}, 'and');$app->orderBy('employee_id', \Sazanof\NovofonApiV2\Builder\Sort::DESC);$app
->setLimit(10)
->setOffset(5)
->removeLimit()
->removeOffset();По мере разработки, список поддерживаемых методов будет пополняться. Доступные методы можно найти в классе NovofonDataAp.php
Каждый метод возвращает объект ответа, наследуемый от класса BaseResponse, содержащий коллекцию с классами сущностей.
try {
foreach ($app->getSipLines()->lines->items() as $item) {
dump($item->phoneNumber);
}
} catch (\GuzzleHttp\Exception\GuzzleException $e) {
//
} catch (\Sazanof\NovofonApiV2\Exceptions\BaseError $e) {
//
}
// OR
foreach ($app->setLimit(10)->setOffset(33)->getEmployees()->employees->items() as $item) {
dump($item->extension);
}
// Virtual Lines
foreach ($app->getVirtualNumbers()->numbers->items() as $virtualNumber) {
dump($virtualNumber->scenarios); // -> \Sazanof\NovofonApiV2\Collections\ScenariosCollection::class
dump($virtualNumber->status);
}Каждый метод при может выдавать исключение BaseError, содержащий класс ошибки, переданный из API Novofon 2.0, согласно документации