# Примеры реализации API интеграций

**Передаем обязательные поля** (см.раздел Основы)&#x20;

{% content-ref url="../js-api/osnovy" %}
[osnovy](https://docs.watbot.ru/js-api/osnovy)
{% endcontent-ref %}

**Token** - Токен для взаимодействия с API (Получить можно в разделе <https://watbot.ru/account/api>)

**Дополнительные данные**&#x20;

*bot\_id* - внутренний ID бота&#x20;

*contact\_id* - ID контакта в списке "Контакты"

*tag* - значение тега

value - значение переменной

<mark style="color:red;">\*</mark>name - имя переменной

message\_id - ID сообщения внутри платформы watbot

text - текст сообщения

phone - номер телефона

depth - глубина дерева от 1 до 10

<mark style="color:red;">\*</mark>**применяется для переменных пользователя**

## Получение данных списка контактов

{% hint style="info" %}
**Применяется GET-запрос**
{% endhint %}

```php
<? 
//PHP CODE
//author: Administratio constructore chatbots Watbot.ru
function removegetContacts($token) {
  global $token; // доступ к глобальной переменной $token
  $apiUrl = 'https://watbot.ru/api/v1/getContacts?api_token=' . $token . '';
    // Создаем новый cURL ресурс
    $ch = curl_init();
    // Устанавливаем настройки cURL
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // Выполняем запрос
    $response = curl_exec($ch);
    // Закрываем cURL ресурс
    curl_close($ch);
    // Обрабатываем ответ
    if ($response === false) {
        // В случае ошибки
        echo 'Ошибка при получении контактов.';
    } else {
        // В случае успеха
        // Преобразуем полученные данные из JSON в ассоциативный массив
        $contacts = json_decode($response, true);
        
        // Выводим данные в формате JSON
        echo json_encode($contacts);
    }
}
// Вызываем функцию removeTagFromContact
removegetContacts($token);
?> 
```

## Добавление тега для контакта

{% hint style="warning" %}
**Применяется POST-запрос**
{% endhint %}

```php
<? 
//PHP CODE
//author: Administratio constructore chatbots Watbot.ru
function removeTagtoContact($token, $contact_id, $tag) {
  global $token; //доступ к глобальной переменной
  $apiUrl = 'https://watbot.ru/api/v1/attachTagToContact?api_token=' . $token . '&contact_id=' . $contact_id . '&name=' .$tag.'';
    // Создаем новый cURL ресурс
   $ch = curl_init();
    // Устанавливаем настройки cURL
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // Выполняем запрос
  $response = curl_exec($ch);
    // Закрываем cURL ресурс
    curl_close($ch);
    // Обрабатываем ответ
    if ($response === false) {
        // В случае ошибки
        echo 'Ошибка при добавлении тега контакта.';
    } else {
        // В случае успеха
        // Преобразуем полученные данные из JSON в ассоциативный массив
       $contacts = json_decode($response, true);
        
        // Выводим данные в формате JSON
        echo json_encode($contacts);
    }
}
// Вызываем функцию removeTagFromContact
removeTagtoContact($token, $contact_id, $tag);
?>

```

## Удаление тега для контакта

{% hint style="warning" %}
**Применяется POST-запрос**
{% endhint %}

```php
<?
//PHP CODE
//author: Administratio constructore chatbots Watbot.ru
function removeTagFromContact($token, $contact_id, $tag) {
  global $token; // доступ к глобальной переменной
  $apiUrl = 'https://watbot.ru/api/v1/detachTagFromContact?api_token=' . $token . '&contact_id=' . $contact_id . '&name=' .$tag.'';
    // Создаем новый cURL ресурс
    $ch = curl_init();
    // Устанавливаем настройки cURL
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // Выполняем запрос
    $response = curl_exec($ch);
    // Закрываем cURL ресурс
    curl_close($ch);
    // Обрабатываем ответ
    if ($response === false) {
        // В случае ошибки
        echo 'Ошибка при удалении тега контакта.';
    } else {
        // В случае успеха
        // Преобразуем полученные данные из JSON в ассоциативный массив
        $contacts = json_decode($response, true);
        
        // Выводим данные в формате JSON
        echo json_encode($contacts);
    }
}
// Вызываем функцию removeTagFromContact
removeTagFromContact($token, $contact_id, $tag);
?>
```

## Получение списка тегов контакта

{% hint style="info" %}
**Применяется GET-запрос**
{% endhint %}

```php
<?
//PHP CODE
//author: Administratio constructore chatbots Watbot.ru
function getContactTags($token, $contact_id) {
  global $token; //доступ к глобальной переменной
  $apiUrl = 'https://watbot.ru/api/v1/getContactTags?contact_id=' . $contact_id . '&api_token=' . $token . '';
    // Создаем новый cURL ресурс
   $ch = curl_init();
    // Устанавливаем настройки cURL
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // Выполняем запрос
  $response = curl_exec($ch);
    // Закрываем cURL ресурс
    curl_close($ch);
    // Обрабатываем ответ
    if ($response === false) {
        // В случае ошибки
        echo 'Ошибка при получении тегов контакта.';
    } else {
        // В случае успеха
        // Преобразуем полученные данные из JSON в ассоциативный массив
       $contact = json_decode($response, true);
        
        // Выводим данные в формате JSON
        echo json_encode($contact);
    }
}
// Вызываем функцию getContactTags
getContactTags($token, $contact_id);
?>
```

## Получение списка переменных пользователя

{% hint style="info" %}
**Применяется GET-запрос**
{% endhint %}

```php
<?
//PHP CODE
//author: Administratio constructore chatbots Watbot.ru
function getContactVariables($contact_id) {
global $token; //доступ к глобальной переменной
  $apiUrl = "https://watbot.ru/api/v1/getContactVariables?api_token=" . $token . "&contact_id=" . $contact_id;
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $apiUrl);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $response = curl_exec($ch);
  curl_close($ch);
  if ($response === false) {
      echo 'Ошибка при получении списка переменных пользователя.';
  } else {
      $variables = json_decode($response, true);
  }
}
//Вызываем функцию getContactVariables
getContactVariables($contact_id);
?>
```

## Создание или обновление переменной&#x20;

{% hint style="info" %}
**Применяется POST-запрос**
{% endhint %}

```php
<?
//PHP CODE
//author: Administratio constructore chatbots Watbot.ru
function setContactVariable($contact_id, $name, $value) {
global $token; //доступ к глобальной переменной
  $apiUrl = "https://watbot.ru/api/v1/setContactVariable?api_token=" . $token . "&contact_id=" . $contact_id."&name=".$name."&value=".$value;
  $data = array(
    "contact_id" => $contact_id,
    "name" => $name,
    "value" => $value);
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $apiUrl);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  $response = curl_exec($ch);
  curl_close($ch);
  if ($response === false) {
      echo 'Ошибка при обновлении или создании переменной пользователя.';
  } else {
      $result = json_decode($response, true);
  }
}
//Вызываем функцию setContactVariables 
setContactVariable($contact_id, $name, $value);
?>
```

## Удаление переменной&#x20;

{% hint style="warning" %}
**Применяется POST-запрос**
{% endhint %}

```php
<?
//PHP CODE
//author: Administratio constructore chatbots Watbot.ru
function deleteContactVariable($contact_id, $name) {
global $token; //доступ к глобальной переменной
  $apiUrl = "https://watbot.ru/api/v1/deleteContactVariable?api_token=" . $token . "&contact_id=" . $contact_id . "&name=" . $name;
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $apiUrl);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
  $response = curl_exec($ch);
  curl_close($ch);
  if ($response === false) {
      echo 'Ошибка при удалении переменной пользователя.';
  } else {
      $result = json_decode($response, true);
  }
}
//Вызываем функцию deleteContactVariables
deleteContactVariable($contact_id, $name);
?>
```

## Отправка текстовой рассылки

{% hint style="warning" %}
**Применяется POST-запрос**
{% endhint %}

```php
<?
//PHP CODE
//author: Administratio constructore chatbots Watbot.ru
function sendMessageToQueue($token, $message_id, $text, $contact_id = null, $phone = null) {
    if ($contact_id !== null || $phone !== null) {
        $apiUrl = 'https://watbot.ru/api/v1/sendMessageToQueue?api_token=' . $token . '&message_id=' . $message_id . '&text=' . $text;
        if ($contact_id !== null) {
            $apiUrl .= '&contact_id=' . $contact_id;
        }
        if ($phone !== null) {
            $apiUrl .= '&phone=' . $phone;
        }
        // Создаем новый cURL ресурс
        $ch = curl_init();
        // Устанавливаем настройки cURL
        curl_setopt($ch, CURLOPT_URL, $apiUrl);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        // Выполняем запрос
        $response = curl_exec($ch);
        // Закрываем cURL ресурс
        curl_close($ch);
        // Обрабатываем ответ
        if ($response === false) {
            // В случае ошибки
            echo 'Error Fatal Request';
    } else {
        echo 'Необходимо указать значение для $contact_id или $phone';
    }
}
}
// Вызываем функцию sendMessageToQueue и отправляем запрос
sendMessageToQueue($token, $message_id, $text, $contact_id, $phone);
?>
```

## Получение реферов контакта

{% hint style="info" %}
**Применяется GET-запрос**
{% endhint %}

```php
<?
//PHP CODE
//author: Administratio constructore chatbots Watbot.ru
function getReferrers($token, $contact_id, $page == null, $depth == null) {
///depth параметр не обязателен, глубина просмотра дерева от 1 до 10, стандартное состояние 1 
///page параметр не обязателен, но нужен, для палигации страниц, страница может содержать до 500 контактов, данный параметр нужен в случае если вывод контактов будет > 500, на 2 странице начинается 501 контакт, дефалтное состояние page = 1
  global $token; //доступ к глобальной переменной
  if($page == null){
  $apiUrl = 'https://watbot.ru/api/v1/getReferrers?contact_id=' . $contact_id . '&api_token=' . $token . '';
  }else{
    $apiUrl = 'https://watbot.ru/api/v1/getReferrers?contact_id=' . $contact_id . '&api_token=' . $token . '&page='.$page.'';
  }
    // Создаем новый cURL ресурс
   $ch = curl_init();
    // Устанавливаем настройки cURL
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // Выполняем запрос
  $response = curl_exec($ch);
    // Закрываем cURL ресурс
    curl_close($ch);
    // Обрабатываем ответ
    if ($response === false) {
        // В случае ошибки
        echo 'Error Fatal Request.';
    } else {
        // В случае успеха
        // Преобразуем полученные данные из JSON в ассоциативный массив
       $referrers = json_decode($response, true);
        
        // Выводим данные в формате JSON
        echo json_encode($referrers);
    }
}
// Вызываем функцию getReferrers
getReferrers($token, $contact_id);
?>
```

## Получить рефералы контакта&#x20;

{% hint style="warning" %}
**Применяется POST-запрос**
{% endhint %}

```php
<?
//PHP CODE
//author: Administratio constructore chatbots Watbot.ru
function getReferrals($token, $contact_id, $page == null) {
///page параметр не обязателен, но нужен, для палигации страниц, страница может содержать до 500 контактов, данный параметр нужен в случае если вывод контактов будет > 500, на 2 странице начинается 501 контакт, дефалтное состояние page = 1
  global $token; //доступ к глобальной переменной
   if($page == null){
  $apiUrl = 'https://watbot.ru/api/v1/getReferrals?contact_id=' . $contact_id . '&api_token=' . $token . '';
  }else{
    $apiUrl = 'https://watbot.ru/api/v1/getReferrals?contact_id=' . $contact_id . '&api_token=' . $token . '&page='.$page.'';
  }
    // Создаем новый cURL ресурс
   $ch = curl_init();
    // Устанавливаем настройки cURL
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // Выполняем запрос
  $response = curl_exec($ch);
    // Закрываем cURL ресурс
    curl_close($ch);
    // Обрабатываем ответ
    if ($response === false) {
        // В случае ошибки
        echo 'Error Fatal Request.';
    } else {
        // В случае успеха
        // Преобразуем полученные данные из JSON в ассоциативный массив
       $referrals = json_decode($response, true);
        
        // Выводим данные в формате JSON
        echo json_encode($referrals);
    }
}
// Вызываем функцию getReferrals
getReferrals($token, $contact_id);
?>
```

{% hint style="success" %}
**Раздел будет дополняться**
{% endhint %}
