Skip to content

Чат

ViewController

Для работы консультанта необходимо зарегистрировать ViewController с именем consultant.

Важно: ViewController регистрируется один раз для всех форм онлайн-консультанта

CreateWidget

Чтобы создать виджет чата, необходимо вызвать метод Comagic.UI.createWidget() со следующими параметрами:

  • widgetName = 'consultant_chat'

Пример

Comagic.UI.registerViewController('consultant', function (settings, tpls) {
    ...
    var chat = Comagic.UI.createWidget('consultant_chat', {
        settings: settings,
        template: tpls['chat'],
        ...
        });
        ...
    chat.render();
});

Методы

startChat()

Инициация чата со стороны посетителя. В этот момент постетитель перейдет в статус "Ожидание".

chat.on('show', function(){
    chat.startChat();
});

При открытии формы срабатывает событие show и вызывается метод startChat().

closeChat()

Завершение чата по инициативе посетителя. Посетитель перейдет в статус "На сайте".

chat.on('beforehide', function(){
    chat.closeChat();
});

Перед скрытием формы вызывается метод closeChat().

isChatAvailable()

Проверяет, есть ли в текущем чате оператор со статусом "в сети" в данный момент. Возвращает true или false.

sendChatByMail(mail: string)

Отправляет историю переписки на e-mail.

sendChatMessage(message: string)

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

setOperatorRating(mark: number)

Метод сохраняет оценку mark, которую посетитель поставил оператору текущего чата.

hasHistory()

Проверяет наличие истории сообщений. Возвращает true или false.

if (chat.hasHistory() {
    var history = chat.getHistory();
}

Проверяем наличие истории сообщений. Если она есть, то запрашиваем ее.

getHistory()

Запрос истории сообщений. Не более 20 сообщений за один запрос. Возвращает массив сообщений или false, если сообщений нет.

if (chat.hasHistory() {
    var history = chat.getHistory();
}

getOperatorVcard()

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

  • name - имя оператора
  • position - должность оператора
  • avatar - ссылка на фотографию оператора

getVisitorCard()

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

  • name - имя посетителя
  • email - массив, содержащий до пяти e-mail адресов, указанных ранее клиентом
  • phone - массив, содержащий до пяти телефонных номеров, указанных ранее клиентом

setVisitorCard(vcard)

Метод сохраняет информацию о посетителе. Объект vcard может содержать следующие поля:

  • name - имя посетителя
  • email - e-mail посетителя
  • phone - телефон посетителя

inviteAccept()

Приглашение в чат принято.

inviteReject()

Приглашение в чат отклонено.

sendFile(input)

Отправка файла в чате.

isReadyForFileTransfer()

Метод, который вернет true в случае, если в данный момент можно отправить файл.

getRequiredInfo()

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

getState()

Метод возвращает текущее состояние посетителя.

Возможные значения:

  • available - посетитель на сайте, не взаимодействует с виджетами.
  • invite - посетитель получил приглашение в чат.
  • chat - посетитель общается с оператором чата.
  • lead - отображается форма лидогенератора.

chatTyping(text: string)

Метод отправляет text в РМО как сообщение, набираемое посетителем.

События

operatorjoined

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

Свойства события operatorjoined:

Объект, содержащий поля:

  • name - имя оператора.
  • position - должность оператора.
  • avatar - ссылка на фотографию оператора.

operatorleave

Событие возникает при отключении оператора от чата.

Свойства события operatorleave Поля аналогичные событию operatorjoined, содержащие значение null.

sendmessage

Событие возникает при получении сообщения чата. Это может быть сообщение от оператора чата, системное сообщение или сообщение от посетителя чата, отправленное им на другой странице сайта.

Свойства события sendmessage:

Объект, содержащий поля:

  • text - текст сообщения.
  • date - время отправки сообщения в формате Unixtime.
  • source - отправитель сообщения. Возможные значения: Оператор, Посетитель, Система.
  • from - имя оператора, если сообщение отправлено оператором. В остальных случаях значение from равно source.
  • chat_id - id чата, которому принадлежит сообщение.
  • message_id - уникальный id сообщения.
  • uid - временный id, используемый для синхронизации отправленных и полученных сообщений.

showchatretentionaction

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

Cвойства события showchatretentionaction: Объект, содержащий поле:

  • alternate_communication_way - мнемоника альтернативного способа связи.

Возможные значения мнемоники:

  • offline_message - форма заявки.
  • sitephone - форма звонка.
  • chat - форма выбора группы.

chatavailabilitychange

Событие возникает в двух ситуациях:

  • Не осталось ни одного оператора РМО в статусе 'online', в этом случае в событии приходит значение false.
  • Появился хотя бы один оператор в статусе 'online', в этом случае приходит значение true.

invite

Событие возникает, когда оператор приглашает посетителя в чат, либо когда срабатывает функция автоприглашения. Свойства события invite:

  • invite_message - сообщение, которое нужно отобразить в момент приглашения.

startchat

Событие возникает в ответ на команду chat.startChat()

closechat

Событие возникает в ответ на команду chat.closeChat()

inviteaccept

Событие возникает в ответ на команду chat.inviteAccept()

invitereject

Событие возникает в ответ на команду chat.inviteReject()

setrating

Событие возникает в ответ на команду chat.setOperatorRating()

sendchatbymail

Событие возникает в ответ на команду chat.sendChatByMail()

ratingchange

Событие возникает при смене оценки оператора. Свойства события ratingchange: Число, соответствующее оценке оператора в текущем чате, либо null, если оценка отсуствтует.

statechange

Событие возникает при смене состояния посетителя сайта. Свойства события statechange мнемоника, соответствующая новому состоянию посетителя. Возможные значения:

  • available - посетитель на сайте, не взаимодействует с виджетами.
  • invite - посетитель получил приглашение в чат.
  • chat - посетитель общается с оператором чата.
  • lead - отображается форма лидогенератора.

chattyping

Событие возникает, когда оператор набирает сообщение.