<commit_before># Примеры использования Sipuni API на PHP

### Перед запуском

В личном кабинете Sipuni в разделе Интеграция скопируйте ключ.

В файле config/config.php впишите ваш ключ.

Теперь можно запускать примеры из папки examples.

```
$php allocate_static
```

### Работа с классом-оберткой для Sipuni API

Для работы, помимо файла SipuniApi.class.php необходимо подключить архив httpful.phar.
Это библиотека для работы с REST API. Ее можно подключать также при помощи composer.
Подробнее читайте на сайте библиотеки [phphttpclient.com](http://phphttpclient.com).

 ```
 require_once ('../lib/httpful.phar');
 require_once ('../lib/SipuniApi.class.php');
 use sipuni\SipuniApi;
 ```

 В конструктор класса подайте API ключ, как его получить читайте в разделе Перед запуском.
 ```
 $api = new SipuniApi($key);
 ```

### Статический коллтрекинг

Методы статического коллтрекинга позволяют выделить номер для использования в рекламе и
получать статистику по этому номеру.

При выделении номера требуется задать диапазон номеров, в котором будет выделен номер.
 Например, найдем диапазон номеров с кодом 499.

 ```
 $range = $api->findRange('499');
 ```
 Для получения полного списка диапазонов воспользуйтесь методом `$api->ranges()`.
  (На данный момент есть только номера с кодом 499).

 Результат:
 ```
 stdClass Object
 (
    [id] => 1
    [title] => Москва 499
 )
 ```

 Теперь можно выделить статический номер и сделать переадресацию на номер 74997778899.
 В качестве комментария - 'For newspapers' предположим, что номер будет использоваться для рекламы в газетах.
 ```
 $number = $api->allocateStatic($range->id, '74997778899', 'For newspapers');
 ```
 Результат, выделен номер:
 ```
 '74995550000'
 ```

 Когда номер больше не нужен, его можно освободить.
 ```
 $success = $api->releaseStatic('74995550000');
 ```
 Результат:
  ```
  true
  ```

 Все методы создают исключение \\Exception, в случае ошибок.


### Получение статистики по отслеженным звонкам

 Через API можно получить статистику по отслеженным в коллтрекинге номерам.
 Для этого используется метод getStatisticsHits.
 Первый параметр cid (campaign id) это идентификатор кампании коллтрекинга. Его можно взять
 из JavaScript кода коллтркинга, (переменная ct_cid=NNN)
 Два других параметра - дата с и по которую выдать статистику. Задается в формате unix timestamp.
 ```
 $hits = $api->getStatisticsHits('140', 1441111200, 1441411200);
 ```
 В результате выдается массив со статистикой.

 ua_client_id - идентификатор client_id Universal Analtics
 number - номер телефона на который был звонок
 source_id - номер абонента
 ```
 Array
 (
     [0] => stdClass Object
         (
             [status] => 3
             [customer] => 140
             [ua_client_id] =>
             [hit_price] => 5.00
             [occurred] => 2015-11-25T20:02:15.448142Z
             [number] => 74996477486
             [visitor_source] =>
             [source_id] => 74996479797
             [id] => 1465
         ),
     [1] => stdClass Object
         (
             [status] => 3
             [customer] => 140
             [ua_client_id] =>
             [hit_price] => 5.00
             [occurred] => 2015-11-25T20:02:15.448142Z
             [number] => 74996477486
             [visitor_source] =>
             [source_id] => 74996479797
             [id] => 1465
         )

 )
 ```

<commit_msg>text#14<commit_after># Примеры использования Sipuni API на PHP

### Перед запуском

В личном кабинете Sipuni в разделе Интеграция скопируйте ключ.

В файле config/config.php впишите ваш ключ.

Теперь можно запускать примеры из папки examples.

```
$php allocate_static
```

### Работа с классом-оберткой для Sipuni API

Для работы, помимо файла SipuniApi.class.php необходимо подключить архив httpful.phar.
Это библиотека для работы с REST API. Ее можно подключать также при помощи composer.
Подробнее читайте на сайте библиотеки [phphttpclient.com](http://phphttpclient.com).

 ```
 require_once ('../lib/httpful.phar');
 require_once ('../lib/SipuniApi.class.php');
 use sipuni\SipuniApi;
 ```

 В конструктор класса подайте API ключ, как его получить читайте в разделе Перед запуском.
 ```
 $api = new SipuniApi($key);
 ```

### Статический коллтрекинг

Методы статического коллтрекинга позволяют выделить номер для использования в рекламе и
получать статистику по этому номеру.

При выделении номера требуется задать диапазон номеров, в котором будет выделен номер.
 Например, найдем диапазон номеров с кодом 499.

 ```
 $range = $api->findRange('499');
 ```
 Для получения полного списка диапазонов воспользуйтесь методом `$api->ranges()`.
  (На данный момент есть только номера с кодом 499).

 Результат:
 ```
 stdClass Object
 (
    [id] => 1
    [title] => Москва 499
 )
 ```

 Теперь можно выделить статический номер и сделать переадресацию на номер 74997778899.
 В качестве комментария - 'For newspapers' предположим, что номер будет использоваться для рекламы в газетах.
 ```
 $number = $api->allocateStatic($range->id, '74997778899', 'For newspapers');
 ```
 Результат, выделен номер:
 ```
 '74995550000'
 ```

 Когда номер больше не нужен, его можно освободить.
 ```
 $success = $api->releaseStatic('74995550000');
 ```
 Результат:
  ```
  true
  ```

 Все методы создают исключение \\Exception, в случае ошибок.


### Получение статистики по отслеженным звонкам

 Через API можно получить статистику по отслеженным в коллтрекинге номерам.
 Для этого используется метод getStatisticsHits.
 Первый параметр cid (campaign id) это идентификатор кампании коллтрекинга. Его можно взять
 из JavaScript кода коллтркинга, (переменная ct_cid=NNN)
 Два других параметра - дата с и по которую выдать статистику. Задается в формате unix timestamp.
 ```
 $hits = $api->getStatisticsHits('140', 1441111200, 1441411200);
 ```
 В результате выдается массив со статистикой.


 ```
 Array
 (
     [0] => stdClass Object
         (
             [status] => 3
             [customer] => 140
             [ua_client_id] =>
             [hit_price] => 5.00
             [occurred] => 2015-11-25T20:02:15.448142Z
             [number] => 74996477486
             [visitor_source] =>
             [source_id] => 74996479797
             [id] => 1465
         ),
     [1] => stdClass Object
         (
             [status] => 3
             [customer] => 140
             [ua_client_id] =>
             [hit_price] => 5.00
             [occurred] => 2015-11-25T20:02:15.448142Z
             [number] => 74996477486
             [visitor_source] =>
             [source_id] => 74996479797
             [id] => 1465
         )

 )
 ```

 * ua_client_id - идентификатор client_id Universal Analtics
 * number - номер телефона на который был звонок
 * source_id - номер абонента

{'fraction_non_alphanumeric': 0.10316634458153709, 'fraction_numerical': 0.05619146722164412, 'mean_word_length': 3.0457005411906195, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 59, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2665719', 'n_tokens_mistral': 2784, 'n_tokens_neox': 2814, 'n_words': 652}