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

Обратите внимание: Библиотека для общения с сервером использует intentService (ClientRequestService), который нужно прописать в манифесте. Без указания этого сервиса в манифесте запросы отправляться не будут.

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

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

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

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

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

/* Получаем пуш токен, используя стандартную библиотеку play-services, 
   где GCM_SENDER_ID - номер проекта в Google API консоли */
String regid = GoogleCloudMessaging.getInstance(context).register(GCM_SENDER_ID);

/* Инициализация сервиса Livetex */
Livetex livetex = new Livetex.Builder(context, API_KEY, id)
        
             .addAuthUrl(AUTH_URL)
        
             .addDeviceId(regId)
    
             .addToken(restoreFromCache)
             .addCapabilities(capabilities)
        
             .build();

/* Аутентификация в системе Livetex */
livetex.init(new IInitHandler() {
    
    @Override
    
    public void onSuccess(String token) {
        /* Кэшируем токен, при новом входе в приложение передаем его в метод Livetex.Builder().addToken,
           чтобы подтянулась предыдущая переписка */
        SharedPreferences pref = context.getSharedPreferences(PREFERENCES, Context.MODE_PRIVATE);
            pref.edit().putString(TOKEN, token).apply();
    }
}

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

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

/* Получение списка назначений */
livetex.getDestinations(new AHandler<ArrayList<Destination>>() {
    
    @Override
    
    public void onError(String errMsg) {

    
    }

   

    @Override
    
    public void onResultRecieved(ArrayList<Destination> destinations) {
        
        if(destinations != null && destinations.size() != 0) {
   

            /*  Указываем информацию, которая полезна для оператора. 
                        Информация отобразится оператору в пульте при создании обращения */
                    Map<String, String> map = new HashMap<>();
             
                    map.put("ОС и ее версия: ", String.valueOf(android.os.Build.VERSION.SDK_INT));

                    /* Указываем адресат обращения */
                livetex.setDestination(destination, new LTDialogAttributes(map));

            }
    
        }

});

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

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

/* Отправка текстового сообщения */
livetex.sendTextMessage(message, new AHandler<SendMessageResponse>() {
    
    @Override
    
    public void onError(String errMsg) {
    
    }

    
    @Override
    
    public void onResultRecieved(SendMessageResponse result) {
        // Результат отправки сообщения
    
        }

});

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

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

livetex.setNotificationDialogHandler(new INotificationDialogHandler() {

    @Override
    public void updateDialogState(LTDialogState state) {
       /* Обработка изменения состояния диалога */
    }

    @Override
    public void receiveTextMessage(LTTextMessage message) {
       /* Обработка нового сообщения от оператора */
    }
}