JavaScript API | tawk.to

Здесь вы можете ознакомиться с документацией по использованию tawk.to JavaScript API.



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

Используйте JavaScript API для управления онлайн-чатом на вашем сайте.

Некоторые популярные варианты использования JavaScript 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
Вызывается при отправке предчатовой формы. Данные формы передаются / is passed to the function(???) Данная функция не поддерживается, если установлено всплывающее окно.
Tawk_API = Tawk_API || {};
Tawk_API.onPrechatSubmit = function(data){
    //place your code here
};
onOfflineSubmit
Событие будет отправлено в момент отправки сообщения через Offline-форму. Данные, предоставленные посетителем, передаются в 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();
Возвращает текущий статус страницы (Онлайн, В сети, Нет на месте, Оффлайн/Не в сети).
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 is 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 was 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 lowercased)
  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 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>"); ?>'
};