JavaScript API

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

Некоторые популярные варианты использования JavaScript API:

Расскажите нам, как вы используете API. Мы будем рады, если вы поделитесь с нами своим опытом!

onLoad

Событие будет отправлено как только виджет отобразится на странице. Данная функция не поддерживается, если установлено всплывающее окно.

Tawk_API = Tawk_API || {};
Tawk_API.onLoad = function(){
    //place your code here
};

onStatusChange

Событие будет отправлено при изменении статуса страницы — «Online», «Away» или «Offline». Данная функция не поддерживается, если установлено всплывающее окно.

Tawk_API = Tawk_API || {};
Tawk_API.onStatusChange = function(status){
    //place your code here
};

onBeforeLoad

Событие будет отправлено как только tawk_api готов к использованию еще до момента отображения виджета. Данная функция не поддерживается, если установлено всплывающее окно.

Tawk_API = Tawk_API || {};
Tawk_API.onBeforeLoad = function(){
    //place your code here
};

onChatMaximized

Событие будет отправлено при максимальном увеличении виджета. Данная функция не поддерживается, если установлено всплывающее окно.

Tawk_API = Tawk_API || {};
Tawk_API.onChatMaximized = function(){
    //place your code here
};

onChatMinimized

Событие будет отправлено при минимизации виджета. Данная функция не поддерживается, если установлено всплывающее окно.

Tawk_API = Tawk_API || {};
Tawk_API.onChatMinimized = function(){
    //place your code here
};

onChatHidden

Событие будет отправлено при скрытии виджета. Данная функция не поддерживается, если установлено всплывающее окно.

Tawk_API = Tawk_API || {};
Tawk_API.onChatHidden = function(){
    //place your code here
};

onChatStarted

Событие будет отправлено при запуске виджета.

Tawk_API = Tawk_API || {};
Tawk_API.onChatStarted = function(){
    //place your code here
};

onChatEnded

Событие будет отправлено при завершении/закрытии чата. Данная функция не поддерживается, если установлено всплывающее окно.

Tawk_API = Tawk_API || {};
Tawk_API.onChatEnded = function(){
    //place your code here
};

onPrechatSubmit

Вызывается при отправке предчатовой формы. Данная функция не поддерживается, если установлено всплывающее окно.

Tawk_API = Tawk_API || {};
Tawk_API.onPrechatSubmit = function(data){
    //place your code here
};

onOfflineSubmit

Событие будет отправлено в момент отправки сообщения через Offlineформу. Данные, предоставленные посетителем, передаются (to the call back). Данные формы будут содержать {name : », email : », message : », questions : []}. Данная функция не поддерживается, если установлено всплывающее окно.

Tawk_API = Tawk_API || {};
Tawk_API.onOfflineSubmit = function(data){
    //place your code here
};

visitor{};

Объект, используемый для установки имени и эл.почты посетителя. Не помещайте этот объект в функцию, так как значения должны быть доступны до загрузки скрипта виджета.


Настройка или изменения значений после загрузки виджета не будут отправлены в панель управления/инструментов.


Если имя и эл.почта не будут доступны во время загрузки (в случае одностраничного приложения или ajax логина), рекомендуем использовать функцию setAttributes .

Tawk_API = Tawk_API || {};
Tawk_API.visitor = {
    name  : 'Name',
    email : 'email@email.com'
};

maximize();

Максимизация виджета.

Tawk_API.maximize();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.maximize();
};

minimize();

Минимизация виджета.

Tawk_API.minimize();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.minimize();
};

toggle();

Максимальное уменьшение или увеличение виджета, исходя из текущего состояния.

Tawk_API.toggle();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.toggle();
};

popup();

Открывает виджет как всплывающее окно.

Tawk_API.popup();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.popup();
};

getWindowType();

Возвращает текущий вид виджета, является ли он встроенным или вставленным.

Tawk_API.getWindowType();

//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.getWindowType() === 'inline'){
        // do something if it's inline
    }else{
        // do something if it's embed
    }
};

showWidget();

Показывает виджет.

Tawk_API.showWidget();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.showWidget();
};

hideWidget();

Скрывает виджет.

Tawk_API.hideWidget();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.hideWidget();
};

toggleVisibility();

Скрывает или показывает виджет, исходя из установленных параметров видимости.

Tawk_API.toggleVisibility();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.toggleVisibility();
};

getStatus();

Возвращает текущий статус страницы (online, away, offline).

Tawk_API.getStatus();

//Example

Tawk_API.onLoad = function(){
    var pageStatus = Tawk_API.getStatus();

    if(pageStatus === 'online'){
        // do something for online
    }else if(pageStatus === 'away'){
        //do something for away
    }else{
        // do something for offline
    }
};

isChatMaximized();

Возвращает логическое значение (true или false), если виджет максимизирован.

Tawk_API.isChatMaximized();


//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.isChatMaximized()){
        //do something if it's maximized
    }
};

isChatMinimized();

Возвращает логическое значение (true или false), если виджет минимизирован.

Tawk_API.isChatMinimized();

//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.isChatMinimized()){
        // do something if it's minimized
    }
};

isChatHidden();

Возвращает логическое значение (true или false), если виджет скрыт.

Tawk_API.isChatHidden();

//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.isChatHidden()){
        // do something if chat widget is hidden
    }
};

isChatOngoing();

Возвращает логическое значение (true или false), если есть текущий чат.

Tawk_API.isChatOngoing();

//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.isChatOngoing()){
        //do something if there's ongoing chat
    }
};

isVisitorEngaged();

Возвращает логическое значение (true или false), если посетитель уже участвует в чате или запросил чат.

Tawk_API.isVisitorEngaged();

//Example

Tawk_API.onLoad = function(){
    if(Tawk_API.isVisitorEngaged()){
        // do something if visitor is engaged in chat
    }
};

endChat();

Завершает текущий чат.

Tawk_API.endChat();

//Example

Tawk_API.onLoad = function(){
    Tawk_API.endChat();
};

setAttributes();

Установите специфические метаданные, относящиеся к этому чату/посетителю.

Эта функция принимает два значения: атрибут и обратный вызов.

Значение атрибута относится к типу данных объекта, который представляет собой пару ключ-значение.

Ключ относится к строковому типу данных и может содержать только буквенно-цифровые символы и “-” (знак тире).

Вы также можете использовать эту функцию для установки имени и эл.почты посетителя, но сначала вам необходимо включить безопасный режим, а также предоставить рассчитанное значение хэша-функции.

Подробнее о
безопасном режиме.


Безопасный режим необходим для обеспечения целостности данных, а также, чтобы убедиться, что значение, отправленное из виджета на панель управления, достоверно и не является фальсификацией.

Функция будет вызываться для уведомления о неудачном сохранении.

Сообщение об ошибке будет выглядеть так:

  1. INVALID_ATTRIBUTES: No attributes were sent
  2. SESSION_EXPIRED: The visitor’s current session has expired
  3. SERVER_ERROR: Internal server error
  4. ACCESS_ERROR: Error in accessing the page
  5. ATTRIBUTE_LIMIT_EXCEEDED: Total custom attributes (excluding name, email and hash) is 50
  6. CONTAINS_INVALID_KEY: Custom key is not alphanumeric or dash (keys will be lower case)
  7. CONTAINS_INVALID_VALUE: Custom value is empty or the total length is more than 255 characters
Tawk_API.setAttributes(attributes, callback);

//Example

Tawk_API.onLoad = function(){
    Tawk_API.setAttributes({
        'id'    : 'A1234',
        'store' : 'Midvalley'
    }, function(error){});
};


//Example for setting name and email

Tawk_API.onLoad = function(){
    Tawk_API.setAttributes({
        'name'  : 'Name',
        'email' : 'email@email.com',
        'hash'  : 'hash value'
    }, function(error){});
}

addEvent();

Задайте настраиваемое событие для чата.
Эта функция принимает три значения: название/имя события, факультативные метаданные и функция обратного вызова.

Имя события относится к строковому типу данных и может содержать только буквенно-цифровые символы и “-” (тире).

Функция будет вызываться для уведомления о неудачном сохранении.

INVALID_EVENT_NAME, INVALID_ATTRIBUTES, ATTRIBUTE_LIMIT_EXCEEDED, CONTAINS_INVALID_KEY, CONTAINS_INVALID_VALUE, SESSION_EXPIRED, SERVER_ERROR

Tawk_API.addEvent(eventName, metadata, callback);

//Example

Tawk_API.onLoad = function(){
    Tawk_API.addEvent('requested-quotation', function(error){});

    Tawk_API.addEvent('product-add-to-cart', {
        'sku'    : 'A0012',
        'name'  : 'Jeans',
        'price' :'50'
    }, function(error){});
};

addTags();

Добавление тегов в чат.
Эта функция принимает два значения — теги и обратный вызов.
Это тип данных — массивы (Array).
Теги должны быть представлены в виде строковых данных.

Общее количество тегов — 10.
Функция будет вызываться для уведомления о неудачном сохранении.

INVALID_TAGS, TAG_LIMIT_EXCEEDED, VERSION_CONFLICT, SESSION_EXPIRED, SERVER_ERROR

Tawk_API.addTags(tags, callback);

//Example

Tawk_API.onLoad = function(){
    Tawk_API.addTags(['hello', 'world'], function(error){});
};

removeTags();

Удалить теги из чата.
Эта функция принимает два значения — теги и обратный вызов.
Это тип данных — массивы (Array).
Теги должны быть представлены в виде строковых данных.

Функция будет вызываться для уведомления о неудачном сохранении.

INVALID_TAGS, TAG_LIMIT_EXCEEDED, SESSION_EXPIRED, SERVER_ERROR

Tawk_API.removeTags(tags, callback);

//Example

Tawk_API.onLoad = function(){
    Tawk_API.removeTags(['hello', 'world'], function(error){});
};

Secure Mode

Защищенный режим необходим для того, чтобы гарантировать, что данные, отправленные с вашей стороны, являются действительно вашими.

Чтобы включить защищенный режим, вставьте следующий код на свою страницу.

Хэш представляет собой серверную версию HMAC, использующую SHA256, эл.почту пользователя и ключ-API вашего сайта.

Свой ключ-API вы можете найти в  Админ-панели>Настройки проекта.

Tawk_API = Tawk_API || {};
Tawk_API.visitor = {
    name  : 'Name',
    email : 'email@email.com',
    hash  : '<calculate-hash>'
};

// Here is an example showing how you could do it using PHP

Tawk_API = Tawk_API || {};
Tawk_API.visitor = {
    name  : '<?php echo $user->name; ?>',
    email : '<?php echo $user->email; ?>',
    hash  : '<?php echo hash_hmac("sha256", $user->email, "<API-KEY>"); ?>'
};