Примеры использования iOS SDK

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

Инициализация


/* URL сервиса аутентификации, полученный от технической поддержки */
let url: String = "http://authentication-service-sdk-production-1.livetex.ru"

/* Ключ для аутентификации кодовой базы клиента, полученный от технической поддержки */
let appKey: String = "NEVER_SHOW_THIS_KEY_TO_STRANGERS"

/* Идентификатор приложения клиента - это идентификатор сайта, 
   который можно получить в личном кабинете */
let appID: String = "10001350"

/* Инициализация сервиса Livetex */
let service = LCCoreService(URL:url
                            appID:appID
                            appKey:appKey
                            token:nil
                            deviceToken:nil
                            callbackQueue:nil
                            delegateQueue:nil];

/* Аутентификация в системе Livetex */
service.startServiceWithCompletionHandler { (token: String?, error: NSError?) in
   // ...
}

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

Указываем адресат обращения

/* Получение списка назначений */
service.destinationsWithCompletionHandler { (destinations: [LCDestination]?, error: NSError?) in
    if error == nil {
        if destinations.count > 0 {
            /*  Указываем информацию, которая полезна для оператора. 
                Информация отобразится оператору в пульте при создании обращения */
            let attributes = LCDialogAttributes(visible: ["User": "unknown"], hidden: nil)
            /* Указываем адресат обращения */
            service.setDestination(destinations!.first!, attributes: nil, completionHandler: { (success: Bool, error: NSError?) in
                // ...
            })
        }
    }
}

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

Отправка текстового сообщения

/* Отправка текстового сообщения */
service.sendTextMessage("Hello") { (response: LCSendMessageResponse?, error: NSError?) in
    // ...
}

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

Пример кода обработчика оповещений:

class ViewController: UIViewController, LCCoreServiceDelegate {
    /* Указываем получателя оповещений */
    service.delegate = self

    /* Обработка изменения состояния диалога */
    func updateDialogState(state: LCDialogState) {
        /* Проверяем назначен ли оператор для диалога */
        if state.employee != nil {
            self.navigationItem.title = state.employee!.firstname
        }
    }

    /* Обработка нового сообщения от оператора */
    func receiveTextMessage(message: LCMessage) {
        print(message.messageId)
    }
}