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

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

{% content-ref url="/pages/9d6BlKAg21GpCJBOrzyz" %}
[Основы](/js-api/osnovy.md)
{% 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.watbot.ru/rabota-s-api/primery-realizacii-api-integracii.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
