1.3.3 • Published 5 years ago

chatix-core v1.3.3

Weekly downloads
4
License
MIT
Repository
-
Last release
5 years ago

Логотип Chatix

Chatix Core

Chatix Core - JS SDK которое позволяет создавать встроенные в ваше web-приложение чаты и использовать платформу Chatix как поставщика серверной части. Chatix занимается обслуживанием сетевого соединения и хранением данных, а вам остается только отобразить эти данные вашему пользователю.

Первые шаги

Прежде всего вам нужен аккаунт Chatix, чтобы вы смогли использовать этот SDK на своем сайте. Посетите сайт chatix.io чтобы создать бесплатный аккаунт и получиить свой website_id. Этот идентификатор определяет ваш сайт в Chatix и это обязтельный атрибут для конструктора SDK.

Когда вы получите свой website_id, вы сможете приступить к разработке чатов с Chatix Core.

Установка

  1. Установите пакет chatix-core с помощью своего пакетного менеджера
  2. Импортируйте ChatixCore в свое приложение import ChatixCore from 'chatix-core'. Важно: В приложении должна быть только одна сущность SDK.
  3. Создайте экземпляр ChatixCore и передайте в конструктор свой идентификатор let core = new ChatixCore(websiteId);. Подробная документация по свойствам и методам SDK будет рассказана ниже.
  4. Начните соединение вызовом core.start();

Основной класс ChatixCore

ChatixCore - главный объект. Все должно быть сделано с использованием этого объекта. У вас есть доступ к его свойствам и методам, чтобы разработать собственный интерфейс.

Свойства

СвойствоТипОписание
onConnectedfunction(){}Свойству может быть назначена функция обратного вызова, которая будет вызвана после успешного подключения методом start(). Если по каким то причинам посетитель не смог подключиться со своим старым идентификатором, то chatix назначит ему новый - newVisitorId
onConversationMessageReceivedfunction(message: Message){}Свойству может быть назначена функция обратного вызова, которая будет вызываться при получении нового сообщения от консультантов чата.
onConversationMessageUpdatedfunction(message: Message){}Свойству может быть назначена функция обратного вызова, которая будет вызываться при редактировании сообщения консультантом.
onConversationMessageDeletedfunction(messageId: string){}Свойству может быть назначена функция обратного вызова, которая будет вызываться при удалении сообщения консультантом.
onManagerConnectedToConversationfunction(manager: Manager) {}Свойству может быть назначена функция обратного вызова, которая будет вызываться после подключения консультанта к разговору. В разговоре с посетителем может быть одновременно несколько консультантов.
onManagerDisconnectedFromConversationfunction(manager: Manager) {}Свойству может быть назначена функция обратного вызова, которая будет вызываться после отключения консультанта от разговора. В разговоре с посетителем может быть одновременно несколько консультантов.
onScreencastPermissionRequestedfunction(){}Свойству может быть назначена функция обратного вызова, вызываемая при получении от консультанта запрос на просмотр экрана. При получении такого запроса вам стоит показать информационный блок посетителю с вопросом, согласен ли он включить демонстрацию экрана консультанту. После получения ответа от посетителя вам необходимо вызвать метод allowScreenCast(answer: boolean)
onManagerConnectToScreenCastfunction(){}Свойству может быть назначена функция обратного вызова, вызываемая при подключении менеджера к просмотра экрана.
onManagerDisconnectFromScreenCastfunction(){}Свойству может быть назначена функция обратного вызова, вызываемая при отключении менеджера от просмотра экрана. При получении такого запроса вам стоит скрыть информационный блок о ведении трансляции экрана
onChatroomMessageReceivedfunction(chatroomId: string, message: Message){}Свойству может быть назначена функция обратного вызова, которая будет вызываться при получении нового сообщения в чат-комнате.
onChatroomMessageUpdatedfunction(message: Message){}Свойству может быть назначена функция обратного вызова, которая будет вызываться при редактировании сообщения в чат-комнате консультантом.
onChatroomMessageDeletedfunction(messageId: string){}Свойству может быть назначена функция обратного вызова, которая будет вызываться при удалении сообщения в чат-комнате консультантом.
onManagerConnectedToChatroomfunction(chatroomId: string, manager: Manager){}Свойству может быть назначена функция обратного вызова, которая будет вызываться после подключения менеджера к чат-комнате.
onVisitorConnectToChatroomfunction(chatroomId: string, visitor: Visitor){}Свойству может быть назначена функция обратного вызова, которая будет вызываться после подключения нового участника к чат-комнате.
onManagerDisconnectedFromChatroomfunction(chatroomId: string, manager: Manager){}Свойству может быть назначена функция обратного вызова, которая будет вызываться после отключения менеджера от чат-комнаты.
onVisitorDisconnectFromChatroomfunction(chatroomId: string, visitor: Visitor){}Свойству может быть назначена функция обратного вызова, которая будет вызываться после отключения участника от чат-комнаты.
onChatroomCreatedfunction(chatroom: Chatroom){}Свойству может быть назначена функция обратного вызова, которая будет вызываться после создания новой чат-комнаты.
onChatroomUpdatedfunction(chatroom: Сhatroom){}Свойству может быть назначена функция обратного вызова, которая будет вызываться после изменения чат-комнаты.
onChatroomDeletedfunction(chatroomId: string){}Свойству может быть назначена функция обратного вызова, которая будет вызываться после удаления чат-комнаты.
onChatroomRestoredfunction(chatroom: Сhatroom){}Свойству может быть назначена функция обратного вызова, которая будет вызываться после восстановления удаленной чат-комнаты.

Методы

start() : Promise\

Этот метод начинает сетевое взаимодействие. Вы можете запустить Chatix при старте приложение, или же по какому-то событию. Метод ничего не возвращает, но по завершению, метод вызывает функцию обратного вызова в свойстве onConnected

getWebChat(): Promise\

Метод получает конфигурацию чата на сайте. Например может быть полезным определение рабочего времени консультантов с помощью свойства ScheduleItem или динамическое управление настройками внешнего вида сообщений. Описание объекта ChatInfo вы можете посмотреть в секции "Используемые классы".

getAllManagers(): Promise\<Managers[]>

Метод получает информацию о всех консультантах данного сайта. Может быть полезно чтобы отобразить фотографии, имена и другие данные по вашим консультантам посетителю сайта. Описание объекта Managers можете посмотреть в секции "Используемые классы".

getConnectedManagers(): Promise\<Managers[]>

Метод получает информацию о всех подключенных в данный момент консультантах данного сайта. Может быть полезно чтобы отобразить фотографии, имена и другие данные по вашим консультантам посетителю сайта. Описание объекта Managers можете посмотреть в секции "Используемые классы".

getVisitor(): Promise\

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

setVisitor(visitor: Visitor): Promise

АргументТипОписание
visitorVisitorОбъект посетителя сайта с обновленными данными.

Метод отправляет в Chatix обновленные сведения о посетителе сайта. Например, после авторизации посетителя на сайте, вы знаете его имя, email и какую-то другую полезную информацию. Для того чтобы консультанты сайта могли понимать с кем они разговаривают и смогли предоставить клиенту более высокий уровень сервиса.

getConversationMessages(lastMessageId: string = null, count: int = 30): Promise\<Message[]>

АргументТипОписание
lastMessageIdstringИдентификатор последнего известного сообщения в беседе с консультантом. При передаче NULL вернет наиболее актуальные сообщения.
countintКоличество сообщений для возврата.

Метод отдает массив сообщений Message из чата с консультантом. Все сообщения в переписке с консультантом хранятся в хронологическом порядке и отдаются пачками. Количество сообщений в пачке регулируется аргументом count. Для получения последних сообщений из переписки с консультантами, параметр lastMessageId должен содержать NULL. Для загрузки очередной пачки сообщений (например при прокручивании блока сообщений), вам необходимо определить наиболее старое сообщение, отображаемое в данный момент на экране и передать его идентификатор в параметре lastMessageId. SDK определит какие сообщения будут входить в следующую пачку и сформирует для вас ответ. Если в ответе приходит пустой массив, значит вы достигли начала переписки, больше сообщений для отображения нет.

visitorType(text: string = ''): void

АргументТипОписание
textstringТекущий набранный текст в блоке ввода сообщения. NULL следует отправить если посетитель стер все символы из поля без отправки сообщения. В случае отправки сообщения вызывать этот метод с NULL необязательно.

Chatix позволяет консультантам видеть какой текст набирает посетитель сайта. Эта функция позволяет быстрее формулировать ответ и помогать посетителям сайта более эффективно. Используйте этот метод чтобы сообщить консультанту содержимое поля для ввода сообщения еще до непосредственной отправки этого сообщения. Одна из возможностей это сделать - подписаться на событие изменения содержимого поля для ввода сообщения.

sendConversationTextMessage(text: string): void

АргументТипОписание
textstringТекст сообщения.

Метод отправляет текстовое сообщение в диалог с консультантом.

sendConversationFileMessage(file: File): void

АргументТипОписание
fileFileФайл, который вы планируете отправить в чат. Если файл будет указывать на картинку, то Chatix автоматически создаст для него уменьшенные картинки для предпросмотра. Остальные файлы будут отправлены без обработки. Как получить file https://developer.mozilla.org/ru/docs/web/api/file

Метод отправляет файл в диалог с консультантом.

sendScreencastPermission(answer: boolean): void

АргументТипОписание
answerbooleanРешение посетителя о разрешении просмотра экрана. TRUE - посетитель разрешил просмотр своего экрана, FALSE - посетитель запретил просмотр своего экрана

Chatix позволяет консультанту просматривать экран посетителя. Для начала просмотра экрана, посетитель должен получить запрос на разрешение просмотра экрана и решить, будет он показывать содержимое или нет. Данный метод отправляет в Chatix полученное решение посетителя. Если вы хотите скрыть какой то элемент от показа менеджеру, то необходимо добавить ему класс ym-disable-keys. Элементы с этим классом не отображаются у менеджера во время просмотра.

interruptScreenCast(): void

С помощью этого метода посетитель может прервать транслцию экрана в любой момент.

connectToChatroom(chatroomId: string): void

АргументТипОписание
chatroomIdstringИдентификатор чат-комнаты к которой необходимо подключиться.

Метод подключает посетителя к чат-комнате.

disconnectFromChatroom(chatroomId: string): void

АргументТипОписание
chatroomIdstringИдентификатор чат-комнаты.

Метод отключает посетителя от чат-комнаты.

sendChatroomTextMessage(chatroomId: string, text: string): void

АргументТипОписание
chatroomIdstringИдентификатор чат-комнаты в которое отправляется сообщение.
textstringТекст сообщения.

Метод отправляет текстовое сообщение в чат-комнате.

sendChatroomFileMessage(chatroomId: string, file: File): void

АргументТипОписание
chatroomIdstringИдентификатор чат-комнаты.
fileFileФайл, который вы планируете отправить в чат. Если файл будет указывать на картинку, то Chatix автоматически создаст для него уменьшенные картинки для предпросмотра. Остальные файлы будут отправлены без обработки. Как получить file https://developer.mozilla.org/ru/docs/web/api/file

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

getChatroomMessages(chatroomId: string, lastMessageId: string = null, count: int = 30): Promise\<Messages[]>

АргументТипОписание
chatroomIdstringИдентификатор чат-комнаты.
lastMessageIdstringИдентификатор последнего известного сообщения в беседе с консультантом. При передаче NULL вернет наиболее актуальные сообщения.
countintКоличество сообщений для возврата.

Метод возвращает массив сообщений отсортированных по дате и времени

getAllChatrooms(): Promise\

Метод возвращает массив всех доступных чат-комнат.

getMyChatrooms(): Promise\

Метод возвращает массив чат-комнат к которым подключен посетитель.

getChatroom(chatroomId: string): Promise\

АргументТипОписание
chatroomIdstringИдентификатор чат-комнаты.

Метод возвращает объект чат-рума

getMember(memberId: string): Promise\

АргументТипОписание
visitorIdstringИдентификатор посетителя.

Метод позволяет посетителю получить информацию о другом посетителе по его идентификатору.

getChatromMembers(chatroomId: string, itemsPerPage: int, numberOfPage: int): Promise\

АргументТипОписание
chatroomIdstringИдентификатор чат-комнаты.
itemsPerPageintСколько записей на одной странице.
numberOfPageintНомер страницы.

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

getMinutesToWork(): string

Метод возвращает время в минутах до начала рабочего дня менеджера. Или 0, если сегодня выходной.

getIsConnected(): boolean

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

Вспомогательные классы

Visitor

Visitor - объект представляет данные о текущем посетителе сайта.

СвойствоТипОписание
uuidstring (read-only)Уникальный идентификатор посетителя в Chatix. Например: 6ea5d198-762a-11e9-8f9e-2a86e4085a59. Не изменяйте значение этого свойства.
namestringОтображаемое имя посетителя. Может быть его ник, ФИО или другая информация, по которой можно обращаться к вашему посетителю.
emailstringАдрес электронной почты. Например: demo@example.com
fieldsobjectПользовательские поля посетителя. Каждый сайт и приложение имеет свой особый набор полей, которые он хочет установить посетителю. Это могут быть: внутренний идентификатор, состояние баланса, содержимое корзины и многое другое. Свойство представляет собой обычный объект с полями и значениями. Мы рекомендуем обращаться к данным в этом объекте в виде ассоциативного массива fields["Property name"] чтобы получить возможность использовать осмысленные фразы в качестве ключа поля.
avatar_previewstringПревью аватара посетителя
avatarstringАватар посетителя в оригинальном размере
browser_languagestringЯзык браузера посетителя. Используется для определения языка виджета по умолчанию
citystringГород посетителя
countrystringСтрана посетителя
current_page_titlestringЗаголовок текущейстраницы посетителя
current_urlstringurl адрес текущей страницы посетителя
ipstringip посетителя
is_screen_cast_allowedbooleanОтметка давал ли посетитель разрешение на просмотр экрана
online_timeintВремя онлайна посетителя в чате
last_activityintВремя последней активности посетителя
is_onlinebooleanОнлайн ли посетитель в данный момент
time_zone_offsetintСмещение часового пояса
utm_campaignstringUTM метка по которой посетитель попал на сайт
utm_contentstringUTM метка по которой посетитель попал на сайт
utm_mediumstringUTM метка по которой посетитель попал на сайт
utm_sourcestringUTM метка по которой посетитель попал на сайт
utm_termstringUTM метка по которой посетитель попал на сайт

VisitorInfo

VisitorInfo - объект представляет данные о запрошенном посетителе.

СвойствоТипОписание
uuidstringУникальный идентификатор посетителя в Chatix.
avatarstringОригинал аватара посетителя.
avatar_previewstringУменьшенный аватар посетителя.
namestringИмя посетителя.

Manager

Manager - объект представляет данные о менеджере.

СвойствоТипОписание
uuidstring (read-only)Уникальный идентификатор менеджера в Chatix.
namestringИмя менеджера.
emailstringАдрес электронной почты.
is_onlinebooleanВ сети мнеджер в данный момент или нет.
avatar_thumb100_urlstringПревью аватара менеджера размером 100x100px.
avatar_thumb300_urlstringПревью аватара менеджера размером 300x300px.
avatar_urlstringАватар менеджера в оригинальном размере.

Message

Message - экземпляры данного класса предоставляют информацию о сообщении в чате. В Chatix существует 3 разных вида сообщений: текстовое сообщение, сообщение с файлом и сообщение с картинкой. Комбинации вроде "сообщение с текстом и файлом одновременно" в Chatix не поддерживаются, такие комбинации должны быть разделены на разные сообщения, но вы можете создать подобный эффект визуальными средствами..

СвойствоТипОписание
uuidstring (read-only)Идентификатор сообщения.
typeintТип сообщения, 0 - текстовое, 4 - картинка, 5 - файл
sender_flagintФлаг направления сообщения. 0 - сообщение посетителя, 1 - сообщение консультанта
sender_idstringИдентификатор отправителя. Либо идентификатор посетителя, либо идентификатор консультанта, в зависимости от sender_flag.
contentstringКонтент сообщения. Формат содержимого зависит от типа сообщения (поле type). Для текстовых сообщений (type == 0) - простая строка содежимого. Для сообщений с изображением или файлом (type == 4 или type == 5) - строка содержит ссылку на файл.

ChatInfo

ChatInfo - экземпляр данного класса предоставляет подробную информацию о чате.

СвойствоТипОписание
domainsstring[]Массив с доменами на которых подключен чат
front_templateintШаблон виджета по умолчанию
idstringИдентификатор виджета
membersarrayМассив с идентификаторами менеджеров в данном диалоге
offline_greeting_textstringВстречающее сообщение, показываемое автоматически в нерабочее время
online_greeting_textstringВстречающее сообщение, показываемое автоматически в рабочее время
organisation_namestringНазвание чата
schedulearray ScheduleItem7Расписание работы виджета. Используется для отображения рабочего времени и показа встречающего сообщения. Воскресенье - 0, Суббота - 6
styleobjectОбъект со всеми стилями чата. background_color: "#94f9d1" – цвет фона виджета background_image: "null" – фоновое изображениеbackground_type: 0 - тип фона. 0 – цвет, 1 - изображениеcorner_radius: [20, 20, 20, 20] – радиус скругления углов виджетаheader_color: "#1e777c" – цвет шапки виджетаheader_image: "null" – фоновое изображения шапки виджетаheader_type: 0 - тип фона. 0 – цвет, 1 - изображениеheight: 300 – высота виджетаwidth: 507 – ширина виджетаmanager_message_bg_color: "#237d7f" – цвет входящих сообщенийmanager_message_outline_color: "#ffffff" – цвет обводки входящих сообщенийmanager_message_outline_width: 3 – толщина обводки входящих сообщенийmanager_message_text_color: "#ffffff" - – цвет текста входящих сообщенийsend_button_style: 0 – вид кнопки отправки сообщенийvisitor_message_bg_color: "#1c8094" – цвет исходящих сообщенийvisitor_message_outline_color: "#ffffff" – цвет обводки исходящих сообщенийvisitor_message_outline_width: 3 – толщина обводки исходящих сообщенийvisitor_message_text_color: "#ffffff" – цвет текста исходящих сообщенийtime_zone_utc_offset: 7 – смещение часового пояса. Используется для синхронизации времени менеджеров и посетителя.

ScheduleItem

ScheduleItem - массив с расписанием рабочего времени чата.

СвойствоТипОписание
is_workbooleanРабочий\не рабочий день
startintНачало рабочего дня
endintОкончание рабочего дня

Chatroom

Chatroom - экземпляр данного класса предоставляет подробную информацию о чат-комнате.

СвойствоТипОписание
idstringИдентификатор чат-комнаты
is_deletedbooleanОтметка удалена чат-комната или нет
is_privatebooleanПриватная чат-комната или нет
managersarrayМассив со всеми меннеджерами в данной чат-комнате
titlestringНазвание чат комнаты
number_of_visitorsintКоличество посетителей в данной чат-комнате
web_chat_idstringИдентификатор веб чата
1.3.5-dev

5 years ago

1.3.5-beta

5 years ago

1.3.4-beta

5 years ago

1.3.3-dev

5 years ago

1.3.4-dev

6 years ago

1.3.3

6 years ago

1.3.3-beta

6 years ago

1.3.2-dev

6 years ago

1.3.1-beta

6 years ago

1.3.0-beta

6 years ago

1.2.1

6 years ago

1.2.1-beta

6 years ago

1.2.0

6 years ago

1.2.0-beta

6 years ago

1.0.6-beta

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.5-beta

6 years ago

1.0.4

6 years ago

1.0.4-beta

6 years ago

1.0.3-beta

6 years ago

1.0.2-beta

6 years ago

1.0.1-beta

6 years ago

1.0.1

6 years ago

1.0.0-beta

6 years ago

1.0.0

6 years ago

0.1.18

6 years ago

0.1.18-beta

6 years ago

0.1.17-beta

6 years ago

0.1.17

6 years ago

0.1.16-beta

6 years ago

0.1.15-beta

6 years ago

0.1.15

6 years ago

0.1.14

6 years ago

0.1.14-beta

6 years ago

0.1.12-beta

6 years ago

0.1.11-beta

6 years ago

0.1.10-beta

6 years ago

0.1.9

6 years ago

0.1.9-beta

6 years ago

0.1.9-dev

6 years ago

0.1.8-dev

6 years ago

0.1.8-beta

6 years ago

0.1.8

6 years ago

0.1.7

6 years ago

0.1.6-dev

6 years ago

0.1.6-beta

6 years ago

0.1.6

6 years ago

0.1.5

6 years ago

0.1.4

6 years ago

0.1.3

6 years ago

0.1.2

6 years ago

0.1.1

6 years ago

0.1.0

6 years ago