Chatix Core

Chatix Core - это JavaScript SDK, который позволяет использовать все возможности платформы Chatix. SDK сделан очень простым и интуитивно понятным, что позволяет реализовать собственный уникальный чат на сайте.
Отличия от виджета
Виджет представляет собой одну из возможных реализаций чата и является только лишь оберткой над этим SDK. В целом вы можете использовать виджет и получать в нем доступ к SDK, но для большего контроля и гибкости, вы можете создать чат только на основе ядра. В отличие от виджета, подключение одного лишь ядра выполяется путем подключения к вашему проекту npm-пакета chatix-core. Кроме того, вы можете добавить
npm i chatix-core
Использование SDK требует минимальных навыков работы с пакетным менеджером вроде Webpack. Мы работаем над тем чтобы дать возможность добавить на сайт Chatix Core без использования пакетного менеджера.

FAQ по SDK

Вопрос:
Когда использовать стоит использовать SDK?
Ответ:
В двух словах, если вам нужен только чат с посетителями сайта и наш виджет вас устраивает — можете использовать виджет. Если вам нужен полный функционал Chatix или вы хотите сделать собственный виджет — используйте SDK.
Вопрос:
Какими навыками нужно обладать чтобы использовать SDK?
Ответ:
Для начала работы с SDK вам достаточно базовых знаний по HTML, CSS и JavaScript. Мы старались сделать SDK достаточно простым в использовании и написали достаточно подробную документацию. Примеры использования ядра вы можете посмотреть в нашем GitHub репозитории.
Общий принцип работы с ChatixCore
Вся ваша работа с SDK будет сводиться к использованию объекта ChatixCore. Этот объект предоставляет набор методов для получения и отправки данных, а также имеет ряд свойств, предназначенных для callback-функций, которые будут выполнены при наступлении определенного события (например, получение нового входящего сообщения). Помимо объекта ChatixCore, для работы вы будете использовать некоторые дополнительные классы вроде Message (сообщение), Visitor (посетитель), Manager (консультант сайта) и другие.
Установка
// Установите пакет chatix-core с помощью своего пакетного менеджера
// Импортируйте ChatixCore в свое приложение.
// Важно: В приложении должна быть только одна сущность SDK.
import ChatixCore from 'chatix-core';

//Создайте экземпляр ChatixCore и передайте в конструктор свой идентификатор. Подробная документация по свойствам и методам SDK будет рассказана ниже.
let core = new ChatixCore(websiteId);
// Начните соединение вызовом
core.start(); 

Использование SDK

Основной класс ChatixCore
ChatixCore — главный объект. Все должно быть сделано с использованием этого объекта. У вас есть доступ к его свойствам и методам, чтобы разработать собственный интерфейс.
Конструктор ChatixCore
В конструктор вы передаете обязательным параметром идентификатор вашего сайта в Chatix, а также можете передать идентификатор посетителя, если он вам известен.
Свойства
Методы
start() : void
Этот метод начинает сетевое взаимодействие. Вы можете запустить Chatix при старте приложение, или же по какому-то событию. Метод ничего не возвращает, но по завершению, метод вызывает функцию обратного вызова в свойстве onConnected
getWebChatInfo(): Promise<ChatInfo>
Метод получает конфигурацию чата на сайте. Например может быть полезным определение рабочего времени консультантов с помощью свойства schedule или динамическое управление настройками внешнего вида сообщений. Описание объекта ChatInfo вы можете посмотреть в секции «Используемые классы».
См. ChatInfo
getWebChatManagers(): Promise<Manager[]>
Метод получает информацию о всех консультантах данного сайта. Может быть полезно чтобы отобразить фотографии, имена и другие данные по вашим консультантам посетителю сайта. Описание объекта Manager можете посмотреть в секции «Используемые классы».
См. Manager
getWebChatConnectedManagers(): Promise<Manager[]>
Метод получает информацию о всех подключенных в данный момент консультантах данного сайта. Может быть полезно чтобы отобразить фотографии, имена и другие данные по вашим консультантам посетителю сайта. Описание объекта Manager можете посмотреть в секции «Используемые классы».
См. Manager
getVisitor(): Promise<Visitor>
Метод отдает информацию о посетителе. Можете использовать для отображения фото, имени или другой информации о текущем посетителе в чате.
См. Visitor
setVisitor(visitor: Visitor)
Метод отправляет в Chatix обновленные сведения о посетителе сайта. Например, после авторизации посетителя на сайте, вы знаете его имя, email и какую-то другую полезную информацию. Для того чтобы консультанты сайта могли понимать с кем они разговаривают и смогли предоставить клиенту более высокий уровень сервиса.
См. Visitor
getWebsiteMessages(lastMessageId: string = null, count: int = 30): Promise<Message[]>
Метод отдает массив сообщений Message из чата с консультантом. Все сообщения в переписке с консультантом хранятся в хронологическом порядке и отдаются пачками. Количество сообщений в пачке регулируется аргументом count. Для получения последних сообщений из переписки с консультантами, параметр lastMessageId должен содержать NULL. Для загрузки очередной пачки сообщений (например при прокручивании блока сообщений), вам необходимо определить наиболее старое сообщение, отображаемое в данный момент на экране и передать его идентификатор в параметре lastMessageId. SDK определит какие сообщения будут входить в следующую пачку и сформирует для вас ответ. Если в ответе приходит пустой массив, значит вы достигли начала переписки, больше сообщений для отображения нет.
См. Message
visitorType(text: string = null): void
Chatix позволяет консультантам видеть какой текст набирает посетитель сайта. Эта функция позволяет быстрее формулировать ответ и помогать посетителям сайта более эффективно. Используйте этот метод чтобы сообщить консультанту содержимое поля для ввода сообщения еще до непосредственной отправки этого сообщения. Одна из возможностей это сделать — подписаться на событие изменения содержимого поля для ввода сообщения.
sendWebsiteFileMessage(file: File): void
Метод отправляет файл в диалог с консультантом.
sendWebsiteTextMessage(text: string): void
Метод отправляет текстовое сообщение в диалог с консультантом.
allowScreenCast(answer: boolean): void
Chatix позволяет консультанту просматривать экран посетителя. Для начала просмотра экрана, посетитель должен получить запрос на разрешение просмотра экрана и решить, будет он показывать содержимое или нет. Данный метод отправляет в Chatix полученное решение посетителя. Если вы хотите скрыть какой то элемент от показа менеджеру, то необходимо добавить ему класс ym-disable-keys. Элементы с этим классом не отображаются у менеджера во время просмотра.
interruptScreenCast(): void
С помощью данного метода вы можете реализовать прерывание трансляции со стороны посетителя. Если посетитель решит что трансляцию необходимо прекратить, вызовите этот метод и консультанты будут отключены от трансляции.
Вспомогательные классы
Помимо основного объекта ChatixCore, SDK использует набор вспомогательных классов, которые упрощают разработку, делают поведение SDK более строгим и предсказуемым.
Visitor
Объект представляет данные о текущем посетителе сайта.
VisitorInfo
Класс предоставляет данные о других посетителях сайта. Фактически является урезанной версией Visitor, в которой скрыты все критически важные поля, содержащие персональную информацию. Объекты данного класса возвращаются когда один посетитель пытается получить данные о другом посетителе.
Manager
Объект представляет данные о менеджере (консультанте). Обратите внимание что в разговоре с посетителем может быть сразу несколько сайтов. При выполнении действий над менеджерами, определяйте их по идентификатору (uuid).
Message
Экземпляры данного класса предоставляют информацию о сообщении в чате. В Chatix существует 3 разных вида сообщений: текстовое сообщение, сообщение с файлом и сообщение с картинкой. Комбинации вроде «сообщение с текстом и файлом одновременно» в Chatix не поддерживаются, такие комбинации должны быть разделены на разные сообщения, но вы можете создать подобный эффект визуальными средствами.
Объекты данного класса используются при получении и обработке уже отправленных сообщений (метод getWebchatMessages, callback onReceivedWebsiteMessage). Для отправки сообщений используйте соответствующие методы.
ImageMessage
При обработке картинок, Chatix создает им превью размером 100 и 300px по большей стороне. При получении сообщения с type==4 вы получаете объект ImageMessage, который является расширением базового Message.
Chatroom
Экземпляры данного класса описывают групповые чат-комнаты.
ChatInfo
Экземпляр данного класса предоставляет подробную информацию о чате, указанную в настройках Chatix.
ScheduleItem
Экземпляр данного класса предоставляет информацию о рабочем времени в определенный день недели. Часы указаны в часовом поясе сайта. Обратите внимание на то что посетитель и сайт могут быть расположены в разных часовых поясах. Используйте информацию о смещении часового пояса сайта с UTC (ChatInfo.time_zone_utc_offset) для определения рабочего времени сайта и Visitor. time_zone_offset для определения смещения часового пояса посетителя.
ChatStyle
Класс представляет собой информацию о стилизации чата, настроенную в панели управления Chatix. Используйте данные из этого объекта, чтобы пользователь чата смог самостоятельно изменить цвета и размеры чата.

© All Right Reserved. Sovinfsystemi LLC.
hello@chatix.io