ImbaChat API

API для создание диалогов и конференций

1.1 Создание новой группы с участниками

Описание Выполнение данного метода приведет к созданию новой группы и добавлению в эту группу пользователей перечисленных в теле запроса. Параметры запроса

  1. imba_id – Обязательный параметр, определяет принадлежность к виджету. Тип переменной – integer. В случае если imba_id был не передан в запрос, сервер вернет ошибку с кодом 422 и сообщением, что обязательный параметр был не передан (см. Возможные ошибки)
  2. login – Обязательный параметр, логин пользователя сайта, на котором установлен виджет. Тип переменной – string. В случае если login был не передан в запрос, сервер вернет ошибку с кодом 422 и сообщением, что обязательный параметр был не передан (см. Возможные ошибки)
  3. password – Обязательный параметр, пароль пользователя сайта, на котором установлен виджет. Тип переменной – string. В случае если password был не передан в запрос, сервер вернет ошибку с кодом 422 и сообщением, что обязательный параметр был не передан (см. Возможные ошибки)
  4. room_title – Необязательный параметр, определяет название комнаты для всех пользователей, именно этот параметр, пользователь видит в списке комнат. Тип переменной – string. В случае если room_title был не передан в запрос, сервер присвоит этой переменной значение “new room”.
  5. room_pipe – Необязательный параметр, данный параметр является строковым идентификатором группы, нужен для того, чтоб можно было определить группы без указания room_id. Тип переменной – string. В случае если room_pipe был не передан в запрос, сервер присвоит этой переменной случайное уникальное значение.
  6. room_is_public – Необязательный параметр, данный параметр определяет является ли группа публичной или нет. Тип переменной – integer. Возможные значение 1 – публичная группа, 0 – закрытая группа.
  7. room_type – Необязательный параметр, данный параметр определяется тип создаваемой группы. Тип переменной – integer. Возможные значения: 0 – диалог, 1 – конференция, 3 – комната тех поддержки.
  8. users_ids – Необязательный параметр, данный параметр определяет участников группы. Тип переменной – ассоциативный массив. Пример параметра: users_ids = [1, 2, 3]; Значение массива это ид пользователей, которые зарегистрированы на внешнем сайте.

Пример запроса: CURL:

curl --location --request POST 'https://api.imbachat.com/imbachat/v1/widget/imba_rooms' \
--form 'imba_id=209' \
--form 'login=admin' \
--form 'password=admin' \
--form 'users_ids[0]=3' \
--form 'room_type=1' \
--form 'users_ids[1]=4' \
--form 'room_title=Тестовая API группа 9' \
--form 'room_pipe=' \
--form 'room_is_public =1'

PHP:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.imbachat.com/imbachat/v1/widget/imba_rooms",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array('imba_id' => '209','login' => 'admin','password' => 'admin','users_ids[0]' => '3','room_type' => '1','users_ids[1]' => '4','room_title' => 'Тестовая API группа 9','room_pipe' => '','room_is_public ' => '1'),
  CURLOPT_HTTPHEADER => array(
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Пример ответа

{
    "code": 200,
    "message": "Success",
    "data": [
        {
            "success": true,
            "roomId": 613,
            "room_id": 613
        }
    ]
}

1.2 Добавление новых участников в группу, созданную

Описание Выполнение данного метода приведет к созданию новой группы и добавлению в эту группу пользователей перечисленных в теле запроса. Параметры запроса:

  1. imba_id – Обязательный параметр, определяет принадлежность к виджету. Тип переменной – integer. В случае если imba_id был не передан в запрос, сервер вернет ошибку с кодом 422 и сообщением, что обязательный параметр был не передан (см. Возможные ошибки)
  2. login – Обязательный параметр, логин пользователя сайта, на котором установлен виджет. Тип переменной – string. В случае если login был не передан в запрос, сервер вернет ошибку с кодом 422 и сообщением, что обязательный параметр был не передан (см. Возможные ошибки)
  3. password – Обязательный параметр, пароль пользователя сайта, на котором установлен виджет. Тип переменной – string. В случае если password был не передан в запрос, сервер вернет ошибку с кодом 422 и сообщением, что обязательный параметр был не передан (см. Возможные ошибки)
  4. room_title – Необязательный параметр, определяет название комнаты для всех пользователей, именно этот параметр, пользователь видит в списке комнат. Тип переменной – string. В случае если room_title был не передан в запрос, сервер присвоит этой переменной значение “new room”.
  5. room_pipe – Необязательный параметр, данный параметр является строковым идентификатором группы, нужен для того, чтоб можно было определить группы без указания room_id. Тип переменной – string. В случае если room_pipe был не передан в запрос, сервер присвоит этой переменной случайное уникальное значение.
  6. room_is_public – Необязательный параметр, данный параметр определяет является ли группа публичной или нет. Тип переменной – integer. Возможные значение 1 – публичная группа, 0 – закрытая группа.
  7. room_type – Необязательный параметр, данный параметр определяется тип создаваемой группы. Тип переменной – integer. Возможные значения: 0 – диалог, 1 – конференция, 3 – комната тех поддержки.
  8. users_ids – Необязательный параметр, данный параметр определяет участников группы. Тип переменной – ассоциативный массив. Пример параметра: users_ids = [1, 2, 3]; Значение массива это ид пользователей, которые зарегистрированы на внешнем сайте.
  9. room_id – Необязательный параметр, данный параметр является числовым идентификатором группы, нужен для того, чтоб можно было определить группы без указания room_pipe. Тип переменной – integer. В случае если room_ id и room_pipe был не передан в запрос, сервер создаст новую комнату

Пример запроса: CURL:

curl --location --request POST 'https://api.imbachat.com/imbachat/v1/widget/imba_rooms' \
--form 'imba_id=209' \
--form 'login=admin' \
--form 'password=admin' \
--form 'users_ids[0]=1' \
--form 'room_type=1' \
--form 'room_title=Тестовая API группа 9' \
--form 'room_pipe=' \
--form 'room_is_public =1' \
--form 'room_id=613'

PHP:

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.imbachat.com/imbachat/v1/widget/imba_rooms",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => array('imba_id' => '209','login' => 'admin','password' => 'admin','users_ids[0]' => '1','room_type' => '1','room_title' => 'Тестовая API группа 9','room_pipe' => '','room_is_public ' => '1','room_id' => '613'),
  CURLOPT_HTTPHEADER => array(
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Пример ответа

{
    "code": 200,
    "message": "Success",
    "data": [
        {
            "success": true,
            "roomId": 613,
            "room_id": 613
        }
    ]
}

Пример ответа

{
    "code": 200,
    "message": "Success",
    "data": [
        {
            "error": false,
            "success": true,
            "room_id": "613",
        }
    ]
}

API для получения списка пользователей с применением фильтров

Описание

Данный метод возвращает список пользователей, которые подошли под фильтры, которые были переданы в запросе.

Авторизация:

Для получения доступа к запросу необходимо пройти Basic аутентификацию. Логин - ИД виджета, пароль - секретный ключ

Фильтры:

  1. login - имя пользователя зарегистрированного в чате
  2. id - Идентификационный номер в системе imbachat
  3. imba_id - Идентификационный номер виджета
  4. status - Статус пользователя (пользователь / администратор)
  5. last_message_date - дата последнего сообщения
  6. banned - статус бана

Пример запроса: CURL:

curl --location --request POST 'http://api.imbachat.com/imbachat/v2/627/get_users' \
--user imba_id:secret_key \
--form 'imba_id="627"' \
--form 'status="user"' \

PHP:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'http://api.imbachat.com/imbachat/v2/627/get_users',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('imba_id' => 627, 'status' => 'user'),
  CURLOPT_USERPWD => "imba_id:secret_key",
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Пример ответа

{
    "success": "true",
    "data": [
        {
            "id": 2046,
            "deleted_at": null,
            "created_at": "2020-11-23 05:26:41",
            "updated_at": "2020-11-24 06:59:54",
            "remote_user_id": "1",
            "user_data": null,
            "imba_id": 627,
            "login": "NULL",
            "password": "NULL",
            "status": "admin",
            "avatar_url": "https://secure.gravatar.com/avatar/3875115bacc48cca24ac51ee4b0e7975?s=48&d=identicon"
        }
    ],
    "code": 200
}

API для получения списка комнат с применением фильтров

Описание

Данный метод возвращает список комнат, которые подошли под фильтры, которые были переданы в запросе, также возвращается успешный ответ если был передан заголовок "JWT" с токеном.

Фильтры:

  1. room_type - тип комнат (диалог - 0 / конференция - 1)
  2. status - статус пользователя находящегося в комнате
  3. imba_id - Идентификационный номер виджета
  4. count_users - количество пользователей
  5. last_message_date - дата последнего сообщения
  6. banned - статус бана

Пример запроса: CURL:

curl --location --request POST 'http://api.imbachat.com/imbachat/v2/627/get_rooms' \
--user imba_id:secret_key \
--form 'imba_id="627"' \
--form 'room_type="0"'

PHP:

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'http://api.imbachat.com/imbachat/v2/627/get_rooms',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('imba_id' => 627, 'room_type' => '0'),
  CURLOPT_USERPWD => "imba_id:secret_key",
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Пример ответа

{
    "success": "true",
    "data": [
        {
            "id": 1853,
            "pipe": "5fde659f0ba18_1608410527",
            "name": "Technical support",
            "admin_id": 2157,
            "type": 3,
            "tab": 0,
            "is_public": 0,
            "created_at": "2020-12-19 20:42:07",
            "updated_at": "2020-12-19 20:42:07",
            "deleted_at": null,
            "status": 0,
            "imba_id": 627
        }, 
        {
            "id": 1314,
            "pipe": "5fbcaf6a4ba35_1606201194",
            "name": "New conversation",
            "admin_id": 2046,
            "type": 0,
            "tab": 0,
            "is_public": 0,
            "created_at": "2020-11-24 06:59:54",
            "updated_at": "2020-11-24 06:59:54",
            "deleted_at": null,
            "status": 0,
            "imba_id": 627
        }
    ],
    "code": 200
}

API для получения списка сообщений с применением фильтров

Описание

Данный метод возвращает список сообщений, которые подошли под фильтры, которые были переданы в запросе, также возвращается успешный ответ если был передан заголовок "JWT" с токеном.

Фильтры:

  1. date - дата сообщения
  2. id - Идентификационный номер в системе imbachat
  3. room_type - тип комнат (диалог - 0 / конференция - 1)
  4. user_name - Имя пользователя написавшего сообщение
  5. user_role - Роль пользователя находящегося в комнате