Примеры использования 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