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