LiveTex SDK. Стартовая документация
LiveTex SDK предоставляет инструментарий для организации консультирования пользователей мобильных приложений.
Использование функционала Livetex SDK в мобильном приложении возможно двумя способами:
- подключение библиотеки, позволяющей использовать программные методы для инциализации чата и т.д.;
- подключение инструмента LivetexKit с заранее преднастроенным графическим интерфейсом чата в мобильном приложении;
Функциональность:
- возможность выбора департамента и оператора для диалога;
- создание и завершение диалога;
- передача и прием текстовых сообщений;
- передача и прием файлов;
- мгновенное оповещение о событиях: оповещение о наборе, удерживающие сообщения, изменение оператора диалога, закрытие диалога оператором;
- просмотр истории сообщений;
- push-нотификации;
Документация API:
Документация LivetexKit (готовый графический интерфейс):
Demo-приложение:
Установка Demo-приложения:
С чего начать?
Шаг 1. Создание аккаунта
Регистрируемся в системе Livetex, добавляем оператора и сайт.
Шаг 2. Получение ключа разработчика.
Запрашиваем ключ разработчика. В письме необходимо указать идентификатор аккаунта в системе Livetex. Идентификатор аккаунта в системе можно посмотреть в личном кабинете в выпадающем списке при нажатии на профиль администратора (верхний правый угол).
Шаг 3. Добавление библиотеки SDK к проекту
Пример добавления библиотеки SDK к проекту можно найти в репозитории с demo-приложением.
Бинарные пакеты библиотек доступны в публичных репозиториях.
Для Android проекта c Gradle cборкой.
- В замыкании
repositories
добавить:"http://sonatype-nexus.livetex.ru/nexus/content/repositories/livetex-public-artifacts"
- В
dependencies
добавитьcompile 'ru.livetex:sdk:1.0.0@aar'
Для Windows phone.
Ссылка на пакет для windows phone: https://www.nuget.org/packages/LiveTex.SDK/
Шаг 4. Разработка обработчиков оповещений от сервера
Livetex SDK предоставляет возможность мгновенного оповещения о новых событиях от сервера. Новые события могут влиять на отображение информации пользователю приложения. Livetex SDK требует от разработчика реализации обработчика оповещений от сервера. Детали интерфейса обработчика можно найти по ссылкам:
- INotificationDialogHandler Android
- LTMobileSDKNotificationHandlerProtocol iOS
- ILiveTexEventsHandler Windows Phone
Пример обработчика оповещений на Java с функциональностью открытия диалога и отсылки сообщения.
// Обработчик инициализации.
class CustomInitHandler implements IInitHandler {
private Livetex sdk;
CustomInitHandler(Livetex livetex) {
sdk = livetex;
}
// В случае успешной инициализации сохраняем переданный токен и создаем обращение.
public void onSuccess(String token) {
saveTokenToCustomClientStorage(token);
sdk.request(new AHandler<State>());
}
}
class CustomNotificationHandler implements INotificationHandler {
private Livetex sdk;
CustomNotificationHandler(Livetex livetex) {
sdk = livetex;
}
...
// При назначении оператора для диалога отправляем приветственное сообщение.
public void updateDialogState(DialogState state) {
if (state.isSetEmployee()) {
sdk.sendTextMessage("Hello", new AHandler<TextMessage>());
}
}
// Логируем сообщения оператора.
public void receiveTextMessage(TextMessage message) {
System.out.println(message.getText());
}
...
}
Пример обработчика оповещений на Objective-C с функциональностью открытия диалога и отсылки сообщения.
@interface LTCustomNotificationDelegate : NSObject <LTMobileSDKNotificationHandlerProtocol>
@property(nonatomic, copy) void (^callBack) (id data);
@end
...
@implementation LTCustomNotificationDelegate
// Обработка изменения состояния.
- (void) updateDialogState: (LTDialogState *) state
{
// Проверяем назначен ли оператор для диалога.
if (state.employee != nil) {
// Отправляем сообщение.
[sdk sendMessage:@"Hello" success:^(LTTextMessage *message) {
...
} failure:^(NSException *chatExeption) {
...
}];
}
}
// Обработка нового сообщения от оператора.
- (void) receiveTextMessage: (LTTextMessage *) message
{
NSLog(message.text);
}
@end
Пример обработчика оповещений на C# с функциональностью открытия диалога и отсылки сообщения.
public class CustomNotificationHandler: ILiveTexEventsHandler {
private LiveTexClient client;
public CustomNotificationHandler(LiveTexClient client) {
client = client;
}
...
public ILiveTexEventsHandler.UpdateDialogState(DialogState dialogState) {
if (dialogState.Employee != null) {
Task<TextMessage> messageTask = SendTextMessageAsync("Hello, Employee!");
TextMessage message = await messageTask;
}
}
public ILiveTexEventsHandler.ReceiveTextMessage(TextMessage message) {
Console.Write(message.Text);
}
...
}
Шаг 5. Инициализация SDK
Пример инициализации Android SDK в основном потоке приложения.
// URL сервиса аутентификации, получен на втором шаге данного гайда.
string url = "http://authentication-service-sdk-production-1.livetex.ru";
// Ключ SDK для аутентификации кодовой базы клиент, получен на втором шаге данного гайда.
string key = "NEVER_SHOW_THIS_KEY_TO_STRANGERS";
// Идентификатор приложения клиента - это идентификатор сайта, который можно
// получить в личном кабинете.
string application = "10001350";
// Список возможностей реализованных в клиентском приложении.
List<Capabilities> capabilities = new ArrayList<Capabilities>();
// Клиентское приложение умеет вести диалог.
capabilities.add(Capabilities.CHAT);
// Клиентское приложение умеет принимать файлы.
capabilities.add(Capabilities.FILES_RECEIVE);
// Получение токена аутентификации из персистентного хранилища клиента SDK.
// Реализуется на усмотрение разработчика. На этапе инициализации SDK можно
// указать уникальный токен для идентификации клиента и восстановления
// истории переписки. Если токен указан не будет система создаст нового
// клиента.
String token = getTokenFromCustomClientStorage();
Builder builder = new Builder(context, key, application);
builder.addCapabilities(capabilities);
builder.addToken(token);
builder.addUrl(url);
Livetex livetex = new builder.build();
// Обработчик инициализации SDK реализуется разработчиком.
CustomInitHandler initHandler = new CustomInitHandler(livetex);
// Обработчик оповещений от сервера реализуется разработчиком.
CustomNotificationHandler notificationHandler = new CustomNotificationHandler(livetex);
livetex.init(initHandler, notificationHandler);
Пример инициализации iOS SDK в основном потоке приложения.
LTMobileSDKInitializationParams *params = [LTMobileSDKInitializationParams new];
// URL сервиса аутентификации, получен на втором шаге данного гайда.
params.livetexUrl = @"http://authentication-service-sdk-production-1.livetex.ru";
// Ключ SDK для аутентификации кодовой базы клиент, получен на втором шаге данного гайда.
params.sdkKey = @"NEVER_SHOW_THIS_KEY_TO_STRANGERS";
// Идентификатор приложения клиента - это идентификатор сайта, который можно
// получить в личном кабинете.
params.applicationId = @"10001350";
LTMobileSDK *sdk = [[LTMobileSDK alloc] initWithParams:params];
// Инициализация кастомного обработчика оповещений.
LTCustomNotificationDelegate *delegate = [LTCustomNotificationDelegate new];
sdk.delegate = delegate;
// Инициализация SDK.
[sdk runWithSuccess:^(NSString *token) {
// Запрос диалога с любым оператором.
[sdk requestWithSuccess:^(LTDialogState *state) {
//...
} failure:^(NSException *chatExeption) {
//...
}];
} failure:^(NSException *exception) {
// ...
}];
Пример инициализации Windows Phone SDK в основном потоке приложения.
// Ключ разработчика Livetex SDK.
string key = "NEVER_SHOW_THIS_KEY_TO_STRANGERS";
// Идентификатор приложения.
string applicationID = "10001350";
// URL сервиса аутентификации.
string authServerUri = "http://authentication-service-sdk-production-1.livetex.ru"
var factory = new LiveTexClientFactory(key, applicationID, new Uri(authServerUri));
LiveTexClient livetexClient = await factory.CreateAsync(Token, Capabilities.Chat, Capabilities.FilesReceive);
CustomNotificationHandler handler = CustomNotificationHandler(livetexClient);
Token = liveTexClient.GetToken();
livetexClient.SubscribeToEvents(handler);
Task<DialogState> request = client.RequestDialogAsync();
DialogState state = await request;
Описанный выше пример позволяет реализовать следующий сценарий:
- Пользователь инициализирует SDK (вызов
init
). - При успешной инициализации SDK выполняется соответствующий обработчик (вызов
onSuccess
). - Тело обработчика успешной инициализации запрашивает диалог с оператором (вызов
request
). - Обработчик оповещений дожидается события назначения оператора для диалога (вызов
updateDialogState
). - Если оператор для диалога назначен отправляем сообщение (вызов
sendTextMessage
). - Сообщения принимаемые от оператора логируются (вызов
receiveTextMessage
).