Примеры использования 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) {
/* Обработка нового сообщения от оператора */
}
}