0.1.15-beta • Published 7 years ago

chatix-core v0.1.15-beta

Weekly downloads
4
License
MIT
Repository
-
Last release
7 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 - главный объект. Все должно быть сделано с использованием этого объекта. У вас есть доступ к его свойствам и методам, чтобы разработать собственный интерфейс. new ChatixCore(websiteId, visitorId);

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

Свойства

СвойствоТипОписание
onConnectedfunction(visitor: Visitor, newVisitorId: string){}Свойству может быть назначена функция обратного вызова, которая будет вызвана после успешного подключения методом start(). Если по каким то причинам посетитель не смог подключиться со своим старым идентификатором, то chatix назначит ему новый - newVisitorId
onReceivedWebsiteMessagefunction(message: Message){}Свойству может быть назначена функция обратного вызова, которая будет вызываться при получении нового сообщения от консультантов чата.
onManagerConnectedfunction(manager: Manager) {}Свойству может быть назначена функция обратного вызова, которая будет вызываться после подключения консультанта к разговору. В разговоре с посетителем может быть одновременно несколько консультантов.
onManagerDisonnectedfunction(manager: Manager) {}Свойству может быть назначена функция обратного вызова, которая будет вызываться после отключения консультанта от разговора. В разговоре с посетителем может быть одновременно несколько консультантов.
onRequestScreenCastfunction(){}Свойству может быть назначена функция обратного вызова, вызываемая при получении от консультанта запрос на просмотр экрана. При получении такого запроса вам стоит показать информационный блок посетителю с вопросом, согласен ли он включить демонстрацию экрана консультанту. После получения ответа от посетителя вам необходимо вызвать метод allowScreenCast(answer: boolean)
onDisconnectManagerFromScreenCastfunction(){}Свойству может быть назначена функция обратного вызова, вызываемая при отключении менеджера от просмотра экрана. При получении такого запроса вам стоит скрыть информационный блок о ведении трансляции экрана

Методы

start() : void

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

getWebChatInfo(): Promise\

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

getWebChatManagers(): Promise\<Managers[]>

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

getWebChatConnectedManagers(): Promise\<Managers[]>

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

getVisitor(): Promise\

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

setVisitor(visitor: Visitor)

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

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

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

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

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

visitorType(text: string = null): void

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

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

sendWebsiteFileMessage(file: File): void

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

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

sendWebsiteTextMessage(text: string): void

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

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

allowScreenCast(answer: boolean): void

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

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

interruptScreenCast(): void

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

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

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 метка по которой посетитель попал на сайт

Manager

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

СвойствоТипОписание
uuidstring (read-only)Уникальный идентификатор менеджера в Chatix.
namestringИмя менеджера.
emailstringАдрес электронной почты.
statusbooleanПоказывает подключен ли менеджер к диалогу
isOnlineboolВ сети мнеджер в данный момент или нет.
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Название чата
scheduleschedule 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 – смещение часового пояса менеджера. Используется для синхронизации времени менеджеров и посетителя.

Schedule

Schedule - массив с расписанием рабочего времени чата. При формировании режима работы важно учитывать часовой пояс, т.к. время у менеджера и посетителя может отличаться. Для этого в объекте ChatInfo есть поле time_zone_utc_offset.

СвойствоТипОписание
is_workbooleanРабочий\не рабочий день
startintЧас начала рабочего дня
endintЧас окончания рабочего дня
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

7 years ago

1.0.5-beta

7 years ago

1.0.4

7 years ago

1.0.4-beta

7 years ago

1.0.3-beta

7 years ago

1.0.2-beta

7 years ago

1.0.1-beta

7 years ago

1.0.1

7 years ago

1.0.0-beta

7 years ago

1.0.0

7 years ago

0.1.18

7 years ago

0.1.18-beta

7 years ago

0.1.17-beta

7 years ago

0.1.17

7 years ago

0.1.16-beta

7 years ago

0.1.15-beta

7 years ago

0.1.15

7 years ago

0.1.14

7 years ago

0.1.14-beta

7 years ago

0.1.12-beta

7 years ago

0.1.11-beta

7 years ago

0.1.10-beta

7 years ago

0.1.9

7 years ago

0.1.9-beta

7 years ago

0.1.9-dev

7 years ago

0.1.8-dev

7 years ago

0.1.8-beta

7 years ago

0.1.8

7 years ago

0.1.7

7 years ago

0.1.6-dev

7 years ago

0.1.6-beta

7 years ago

0.1.6

7 years ago

0.1.5

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago