dangetsu/roistat-sdk

Library for easy work with Roistat API v1

dev-master 2021-08-13 01:20 UTC

This package is auto-updated.

Last update: 2024-05-13 07:34:00 UTC


README

Библиотека для работы с API Roistat v1 (https://roistat.api-docs.io/v1/)

Требования

PHP >= 5.4.0
guzzlehttp/guzzle >= 5.4.0

Установка

Добавить в composer.json новый пакет и произвести composer install(или update ежели у вас уже он установлен).
Подробнее можно почитать хотя бы туть - https://habr.com/post/145946/

{
  "require": {
    "dangetsu/roistat-sdk": "dev-master"
  }
}

Использование

Сперва нужно инициализировать библиотеку для дальнейшей работы.

require_once 'vendor/autoload.php';

$roistat = new \Analytics\Roistat($apiKeyFromProfile, $projectId);
  • projectId - может быть равен 0, если вы хотите обратиться к общему методу получения списка проектов. Но если потребуется обратиться к какому-нибудь методу проекта, то придется заново объявять объект.

Для того что бы сделать какое-либо действие, нам нужно обратиться к схеме, которая это действие осуществляет. В качестве параметра, конструктор принимает базовый объект приложения.

$callScheme = new \Analytics\Scheme\Calltracking\Call($roistat);

Схема в свою очередь предоставляет базовый набор методов которое ей доступны. Например у схемы списка звонков доступны следующие методы:

$callScheme->items();
$callScheme->create(new Entity\Calltracking\Call());
$callScheme->update(new Entity\Calltracking\Call());
  • items() - Возвращает список сущностей, параметры которых можно получать через геттеры, а так же, напрямую вызывать update, delete и т.д.
    В большинстве случаев, этот метод принимает в себя параметр для фильтрации и сортировки запросов.
$calls = $callScheme->items((new \Analytics\Engine\Query())->addFilter('callee', '=', '79780000000')->setSort('id', 'desc')->setLimit(1));
$calls[0]->setComment('Тестовый комментарий')
            ->setOrderId('22')
            ->setLink('https://site.ru/calltracking/call/23/file/123456qwerty')
            ->update();
  • create() и update() - Принимают готовую сущность для отправки и возвращают либо статус об успехе либо такую же сущность только с id
$call = (new Entity\Calltracking\Call())
            ->setCallee('7495301234')
            ->setCaller('7495301234')
            ->setDuration(59)
            ->setStatus('ANSWER')
            ->setDate('2016-06-19T09:31:01+0000')
            ->setVisitId('666')
            ->setOrderId('777')
            ->setSaveToCrm(0);
$call = $callScheme->create($call);

Ознакомиться более подробно с использованием библиотеки можно изучив код в папке test

Соотношение методов и схем

Проекты
  • /user/projects - (Scheme\Project())->items()
  • /user/project/create - (Scheme\Project())->create()
  • /project/settings/counter/list - (Scheme\Counter())->get()
Визиты
  • /project/site/visit/list - (Scheme\Visit())->items(Engine\Query)
Клиенты
  • /project/clients/import - (Scheme\Client())->create(Entity\Client[])
  • /project/clients - (Scheme\Client())->items(Engine\Query)
Заказы
  • /project/integration/order/list - (Scheme\Order())->items(Engine\Query)
  • /project/add-orders - (Scheme\OrderAdd())->create(Entity\OrderAdd[])
  • /project/orders/{orderId}/external-url - (Scheme\Order())->externalUrl(string $orderId)
  • /project/set-statuses - (Scheme\Status())->create(Entity\Status[])
  • /project/analytics/order-custom-fields - (Scheme\Order())->customFields()
  • /project/integration/order/{orderId}/status/update - (Scheme\Order())->statusUpdate(string $orderId, string $statusId)
  • /project/integration/order/{orderId}/delete - (Scheme\Order())->delete(string $orderId)
Проксилиды
  • /project/proxy-leads - (Scheme\Proxylead())->items()
  • /project/proxy-leads/{proxyLeadId} - (Scheme\Proxylead())->get(string $leadId)
Коллтрекинг
  • /project/calltracking/script/create - (Scheme\Calltracking\Script())->create(Entity\Calltracking\Script)
  • /project/calltracking/script/list - (Scheme\Calltracking\Script())->items(Engine\Query)
  • /project/calltracking/script/delete - (Scheme\Calltracking\Script())->delete(int $scriptId)
  • /project/calltracking/script/update - (Scheme\Calltracking\Script())->update(Entity\Calltracking\Script)
  • /project/calltracking/data - (Scheme\Calltracking\Data())->items(DateTime $from, DateTime $to)
  • /project/calltracking/call/xls/export - Нет поддержки
  • /project/calltracking/call/{callId}/file - Нет поддержки
  • /project/calltracking/call/update - (Scheme\Calltracking\Call())->update(Entity\Calltracking\Call)
  • /project/calltracking/phone/buy - (Scheme\Calltracking\Phone())->buy(string $prefix, int $count)
  • /project/calltracking/phone/update - (Scheme\Calltracking\Phone())->update(Entity\Calltracking\Phone)
  • /project/calltracking/phone/create - (Scheme\Calltracking\Phone())->create(string[] $phones)
  • /project/calltracking/phone/delete - (Scheme\Calltracking\Phone())->delete(string[] $phones)
  • /project/calltracking/phone/prefix/list - (Scheme\Calltracking\Phone())->allowedPhoneCodes()
  • /project/calltracking/phone/list - (Scheme\Calltracking\Phone())->items(Engine\Query)
  • /project/calltracking/call/list - (Scheme\Calltracking\Call())->items(Engine\Query)
  • /project/phone-call - (Scheme\Calltracking\Call())->create(Entity\Calltracking\Call)
Рекламные каналы
  • /project/analytics/source/list - (Scheme\Analytics\Source())->items(Engine\Query)
  • /project/analytics/source/cost/list - (Scheme\Analytics\Source\Cost())->items()
  • /project/analytics/source/cost/add - (Scheme\Analytics\Source\Cost())->create(Entity\Analytics\Source\Cost)
  • /project/analytics/source/cost/update - (Scheme\Analytics\Source\Cost())->update(Entity\Analytics\Source\Cost)
  • /project/analytics/source/cost/delete - (Scheme\Analytics\Source\Cost())->delete(string $costId)
Статистика
  • В разработке
Доступ
  • В разработке
Индикаторы проекта
  • В разработке
Смс отчеты
  • В разработке
Аналитика
  • В разработке
Биллинг
  • В разработке
Незадокументированные методы
  • Получение списка статусов(только для новых интеграций) - В разработке
  • Получение списка последних 1000 событий - В разработке
  • Получение списка обратных звонков через Ловца лидов - В разработке