Примеры использования iOS SDK
В первую очередь для использования возможностей сервиса Livetex необходимо проинициализировать сервис и пройти аутентификацию в системе Livetex.
Инициализация
/* URL сервиса аутентификации, полученный от технической поддержки */
NSString *url = @"http://authentication-service-sdk-production-1.livetex.ru";
/* Ключ для аутентификации кодовой базы клиента, полученный от технической поддержки */
NSString *appKey = @"NEVER_SHOW_THIS_KEY_TO_STRANGERS";
/* Идентификатор приложения клиента - это идентификатор сайта,
который можно получить в личном кабинете */
NSString *appID = @"10001350";
/* Инициализация сервиса Livetex */
LCCoreService *service = [[LCCoreService alloc] initWithURL:url
appID:appID
appKey:appKey
token:nil
deviceToken:nil
callbackQueue:nil
delegateQueue:nil];
/* Аутентификация в системе Livetex */
[service startServiceWithCompletionHandler:^(NSString * _Nullable token, NSError * _Nullable error) {
// ...
}];
После того как мы блогополучно прошли аутентификацию в системе Livetex и получили токен, необходимо указать с кем мы собираемся вести общение и переписку в чате, указать куда будут направлены наши сообщения.
Указываем адресат обращения
/* Получение списка назначений */
[service destinationsWithCompletionHandler:^(NSArray * _Nullable destinations, NSError * _Nullable error) {
if (!error) {
if (destinations.count > 0) {
/* Указываем информацию, которая полезна для оператора.
Информация отобразится оператору в пульте при создании обращения */
LCDialogAttributes *attributes = [[LCDialogAttributes alloc] initWithVisible:@{@"User": @"unknown"} hidden:nil];
/* Указываем адресат обращения */
[service setDestination:destinations.firstObject attributes:attributes completionHandler:^(BOOL success, NSError * _Nullable error) {
// ...
}];
}
}
}];
После того как мы указали место назначения сообщений, мы можем быть увереными, что наши сообщения не потеряются и не заблудятся в лабиринте маршрутизации.
Отправка текстового сообщения
/* Отправка текстового сообщения */
[service sendTextMessage:@"Hello" completionHandler:^(LCSendMessageResponse * _Nullable response, NSError * _Nullable error) {
// ...
}];
Мы прошли аутентификацию, отправили первое сообщение, теперь нам надо иметь возможность получать ответы на наши сообщения, а еще лучше иметь представление, что происходит в системе Livetex. Для этого необходимо реализовать у себя обработчики событий LCCoreServiceDelegate
Пример кода обработчика оповещений:
@interface ViewController : UIViewController <LCCoreServiceDelegate>
@end
@implementation ViewController
/* Указываем получателя оповещений */
service.delegate = self;
/* Обработка изменения состояния диалога */
- (void)updateDialogState:(LCDialogState *)state {
/* Проверяем назначен ли оператор для диалога */
if (state.employee != nil) {
self.navigationItem.title = state.employee.firstname;
}
}
/* Обработка нового сообщения от оператора */
- (void)receiveTextMessage:(LCTextMessage *)message {
NSLog(@"%@", message.text);
}
@end