ImbaChat API

API для Отправки сообщений

1 Отправка сообщений

Описание Выполнение данного метода приведет к созданию новой группы и добавлению в эту группу пользователей перечисленных в теле запроса. URL: http://develop.im.awsweb.imbachat.com/imbachat/v2/{imba_id}/send_msg Параметры запроса

  1. imba_id – Обязательный параметр, определяет принадлежность к виджету. Тип переменной – integer. В случае если imba_id был не передан в запрос, сервер вернет ошибку с кодом 422 и сообщением, что обязательный параметр был не передан (см. Возможные ошибки)
  2. user_id – Обязательный параметр, ИД пользователя (внешнего сайта) от которого отправляется сообщение
  3. room_id – Обязательный параметр, данный параметр является числовым идентификатором группы, нужен для того, чтоб можно было определить групп. Тип переменной – integer.
  4. password – Обязательный параметр, пароль пользователя сайта, на котором установлен виджет. Тип переменной – string. В случае если password был не передан в запрос, сервер вернет ошибку с кодом 422 и сообщением, что обязательный параметр был не передан (см. Возможные ошибки)
  5. message - string. Обязательный параметр. Текст передаваемого сообщения. Пример запроса: CURL:
    
    curl --location --request POST 'http://develop.im.awsweb.imbachat.com/imbachat/v2/627/send_msg' \
    --user imba_id:secret_key \
    --form 'user_id="1"' \
    --form 'room_id="1536"' \
    --form 'message="api message"'

PHP:
```php
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'http://develop.im.awsweb.imbachat.com/imbachat/v2/627/send_msg',
  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('user_id' => '1','room_id' => '1536','message' => 'api message'),
  CURLOPT_USERPWD => "imba_id:secret_key",
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

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

{
    "success": true,
    "message": {
        "id": 4543,
        "uuid": "1536-1608275827-Z6Eq1W",
        "message": "api message",
        "time": "1608275827",
        "answer_to": 0,
        "liked": "0",
        "user_id": 2046,
        "room_id": "1536",
        "meta": []
    },
    "user": {
        "name": "spray",
        "user_id": "2046",
        "user_mail": "danil-kravtsiv@mail.ru",
        "chat_role": "admin",
        "status": 0,
        "avatar_url": false,
        "profile_url": false,
        "profiles": {
            "1": {
                "profile_id": 1,
                "name": "spray",
                "chat_role": "admin",
                "avatar_url": false,
                "profile_url": false,
                "user_id": "2046",
                "status": 0,
                "lastlogin": -1,
                "remote_user_id": 1
            }
        },
        "lastlogin": -1,
        "remote_user_id": 1
    },
    "relation": 0 
}

2 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
}

3 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
}