Перейти к содержанию

Справочник по Webim Mobile SDK v3 для Android-приложений

Редакция соответствует актуальной версии Mobile SDK 3 для Android.

N.B.

Ответы на наиболее часто встречающиеся вопросы приведены в этой статье.

класс Webim

Набор статических методов, которые используются при создании объекта сессии и для работы в push-уведомлениями, поступающими от сервиса Webim.

метод класса newSessionBuilder()

Метод, необходимый для получения объекта SessionBuilder, который в свою очередь необходим для создания экземпляра класса WebimSession.

Не принимает параметры.

Возвращает экземпляр класса SessionBuilder, необходимый для создания сессии.

Не выбрасывает исключения.

Не требует предварительного вызова других методов.

метод класса parseGcmPushNotification(Bundle bundle)

Метод, используемый для конвертирования объекта, представляющего push-уведомление в Android-приложение, в объект класса WebimPushNotification.

Пример использования:

WebimPushNotification pushNotification = Webim.parseGcmPushNotification(intent.getExtras());

Параметр bundle — сериализованные данные push-уведомления. Тип — Bundle.

Возвращает объект класса WebimPushNotification или null.

Не выбрасывает исключения.

Не требует предварительного вызова других методов.

метод класса parseFcmPushNotification(String message)

Метод, используемый для конвертирования push-уведомления в Android-приложении, в объект класса WebimPushNotification.

Пример использования:

WebimPushNotification pushNotification = Webim.parseFcmPushNotification(remoteMessage.getData().toString());
Параметр message — push-уведомление. Тип — String.

Возвращает объект класса WebimPushNotification или null.

Не выбрасывает исключения.

Не требует предварительного вызова других методов.

метод класса getGcmSenderId()

Метод, позволяющий получить идентификатор отправителя push-уведомлений от сервиса Webim, если для получения push-уведомлений используется сервис GCM.

Пример использования:

if (intent.getStringExtra("from").equals(**Webim**.getGcmSenderId())) {
      // Process Webim push notification.
  } else {
      // Process your application push notification.
  }

Не принимает параметры.

Возвращает ID отправителя push-уведомлений от сервиса Webim. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова других методов.

метод класса setOnlineStatusRequestFrequencyInMillis(long requestFrequency)

Метод, который используется чтобы задать частоту запросов к серверу для получения актуальной информации о свободных операторах на текущей локации.

Параметр requestFrequency — тип long, интервал запросов в миллисекундах.

Не выбрасывает исключения.

Ничего не возвращает.

Вызывается при настройке сессии через SessionBuilder.

перечисляемый тип PushSystem

Системы push-уведомлений, которые могут быть переданы в качестве параметра метода экземпляра SessionBuilder setPushSystem(PushSystem pushSystem).

случай FCM

Соответствует Firebase Cloud Messaging.

случай GCM

Соответствует Google Cloud Messaging.

случай NONE

Соответствует ситуации, когда приложению не требуется получать push-уведомления от сервиса Webim.


класс SessionBuilder

Класс, экземпляр которого используется для получения экземпляра класса WebimSession. Экземпляр класса получается методом newSessionBuilder() класса Webim.

метод экземпляра setContext(Context context)

Метод предназначен для передачи контекста приложения или некой активности для использования методами SDK. Контекст необходим для создания и использования истории сообщений, хранимой локально на устройстве, получения токена для отправки push-уведомлений и получения объекта SharedPreferences (если он не передается напрямую с помощью метода setVisitorDataPreferences(SharedPreferences preferences)). SharedPreferences используются для сохранения идентификационных данных посетителя (см. методы экземпляра setVisitorFieldsJson(String visitorFieldsJson) и setVisitorFieldsJson(JsonObject visitorFieldsJson)).

Параметр context — контекст приложения или некой активности. Тип — Context.

Возвращает тот же экземпляр класса SessionBuilder, но с переданным значением контекста.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода является обязательным.

метод экземпляра setAccountName(String accountName)

Метод необходим для задания названия аккаунта в системе Webim при создании сессии.

Параметр accountName — название аккаунта клиента в системе Webim. Обычно представляет из себя URL сервера (например, https://demo.webim.ru), но может иметь и вид названия аккаунта одним словом (например, «demo»), если сервер находится в домене webim.ru. Тип параметра — String.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным названием аккаунта.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода является обязательным.

метод экземпляра setLocation(String location)

Метод необходим для задания изначально используемого размещения при создании сессии.

Параметр location — размещение внутри сервиса Webim, которая будет использоваться при чате. Тип параметра — String. Скорее всего, сразу же можно использовать значения «mobile» и/или «default». Для создания и дальнейшего использования дополнительных размещений необходимо связаться со службой поддержки сервиса Webim.

Возвращает тот же экземпляр класса SessionBuilder но с установленным названием используемого размещения.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра WebimSession вызов метода является обязательным.

метод экземпляра setAppVersion(String appVersion)

Метод используется для задания версии клиентского приложения, если их необходимо различать в контексте сервиса Webim.

Параметр appVersion — версия клиентского приложения. Тип параметра — String.

Возвращает тот же экземпляр класса SessionBuilder, но с установленной версией клиентского приложения.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода не является обязательным.

метод экземпляра setVisitorDataPreferences(SharedPreferences preferences)

Метод используется для передачи объекта SharedPreferences SDK. Он используется для хранения данных авторизованного пользователя (см. методы setVisitorFieldsJson(String visitorFieldsJson) и setVisitorFieldsJson(JsonObject visitorFieldsJson)) и названия файла локального хранилища истории сообщений.

Если данный метод не был вызван, объект SharedPreferences будет получен из контекста (см. метод setContext(Context context)).

Данные различных авторизованных пользователей хранятся в различных файлах SharedPreferences.

Параметр preferences — объект SharedPreferences приложения.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным значением SharedPreferences.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода не является обязательным.

метод экземпляра setVisitorFieldsJson(String visitorFieldsJson)

Метод используется для внутренней авторизации посетителя.

Без вызова этого метода при создании объекта сессии, пользователь будет анонимным, со случайным образом сгенерированным ID. Этот ID сохраняется в настройках приложения, и в случае потери этих настроек (например, при переустановке приложения), все данные (история сообщений) будут потеряны.

Все данные авторизованного пользователя сохраняются и будут доступны при авторизации с любого устройства.

Параметр visitorFieldsJson — поля авторизационных данных пользователя в JSON-формате, тип — String. Подробную информацию об этих полях (включая, какие из них являются обязательными, и как необходимо их формировать) можно почерпнуть в этой статье.

Возвращает тот же экземпляр класса SessionBuilder, но с установленными авторизационными данными посетителя.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода не является обязательным.

Данный метод не может быть вызван одновременно с методом setProvidedAuthorizationTokenStateListener(ProvidedAuthorizationTokenStateListener ProvidedAuthorizationTokenStateListener, String providedAuthorizationToken).

метод экземпляра setVisitorFieldsJson(JsonObject visitorFieldsJson)

Метод, полностью аналогичный методу setVisitorFieldsJson(String visitorFieldsJson) за исключением параметра: параметр visitorFieldsJson имеет тип JsonObject. Какой из двух методов использовать не имеет значения.

метод экземпляра setProvidedAuthorizationTokenStateListener(ProvidedAuthorizationTokenStateListener providedAuthorizationTokenStateListener, String providedAuthorizationToken)

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

Данный метод передает объект класса, реализующего интерфейс ProvidedAuthorizationTokenStateListener, и токен.

Возвращает тот же экземпляр класса SessionBuilder, но с установленными объектом ProvidedAuthorizationTokenStateListener и токеном клиентской системы авторизации посетителя.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода не является обязательным.

Данный метод не может быть вызван одновременно с методами setVisitorFieldsJson(String visitorFieldsJson) или setVisitorFieldsJson(JsonObject visitorFieldsJson).

метод экземпляра setTitle(String title)

Метод, с помощью которого можно установить заголовок чата со стороны оператора при создании экземпляра сессии. В случае, если при создании экземпляра сессии метод не был вызван, заголовок примет значение по умолчанию — «Android Client».

Параметр title — заголовок чата со стороны оператора. Тип параметра — String.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным заголовком чата со стороны оператора.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса* WebimSession вызов метода не является обязательным.

метод экземпляра setErrorHandler(FatalErrorHandler errorHandler)

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

Параметр errorHandler — любой класс, реализующий интерфейс FatalErrorHandler.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным объектом* FatalErrorHandler.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода не является обязательным.

метод экземпляра setPushSystem(PushSystem pushSystem)

Метод, с помощью которого при создании сессии можно указать, будет ли приложение получать push-уведомления от сервиса Webim и, если будет, какую систему push-уведомлений приложение будет для этого использовать. (См. перечисляемый тип PushSystem в классе Webim.)

Параметр pushSystem — соответствующее значение типа PushSystem класса Webim.

Возвращает тот же экземпляр класса SessionBuilder, но с установленной системой для использования push-уведомлений.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения приложением push-уведомлений сервиса Webim, вызов данного метода не является достаточным: необходим также вызов метода setPushToken(String pushToken).

Для получения экземпляра класса WebimSession вызов метода не является обязательным. Если при создании сессии метод вызван не был, сервис Webim не будет высылать приложению push-уведомления (аналогично, как при значении параметра pushSystem NONE).

метод экземпляра setPushToken(String pushToken)

Метод, с помощью которого при создании сессии можно указать токен для получения приложением push-уведомлений от сервиса Webim.

Параметр pushToken — токен, использующийся для получения push-уведомлений в приложении. Тип — String в шестнадцатеричном формате, без служебных символов и пробелов.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным значением токена для использования push-уведомлений.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения приложением push-уведомлений сервиса Webim, вызов данного метода осуществляется вместе с вызовом метода setPushSystem(PushSystem pushSystem).

Вызов данного метода полезен при дебаггинге.

Для получения экземпляра класса WebimSession вызов метода не является обязательным.

Внимание!

Использование данного метода возможно только после иницализации сессии!

метод экземпляра setGCMSenderId(String senderId)

Метод, с помощью которого можно задать собственный GCM Sender Id для push-уведомлений. Без вызова этого метода будет использован Webim GCM Sender ID.

Параметр senderId — значение GCM Sender Id. Тип — String.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным GCM Sender Id.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода не является обязательным.

метод экземпляра setLogger(WebimLog logger, WebimLogVerbosityLevel verbosityLevel)

Метод, с помощью которого передается объект класса WebimLog.

Параметр logger — объект класса WebimLog.

Параметр verbosityLevel — значение WebimLogVerbosityLevel.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным объектом класса WebimLog для логгирования информации.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода не является обязательным.

метод экземпляра setStoreHistoryLocally(boolean storeHistoryLocally)

По умолчанию сессия сохраняет на устройстве историю сообщений (в SQLite-хранилище, связанном с приложением). Если для каких-либо целей необходимо отключить данный функционал, используется этот метод со значением параметра storeHistoryLocally false.

Параметр storeHistoryLocally — булева переменная, означающая необходимость хранения истории сообщений локально (значение true) или ее (необходимости) отсутствие (значение false).

Возвращает тот же экземпляр класса SessionBuilder, но с установленным вручную значением соответствующей опции.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода не является обязательным. Отсутствие вызова метода аналогично его вызову со значением параметра isLocalHistoryStoragingEnabled true.

метод экземпляра setClearVisitorData(boolean clearVisitorData)

Метод, используемый для удаления всех существующих пользовательских данных во время создания экземпляра сессии.

Параметр clearVisitorData — булева переменная, означающая необходимость очистить пользовательские данные (значение true) или ее (необходимости) отсутствие (значение false).

Возвращает тот же экземпляр класса SessionBuilder, но с установленным вручную значением соответствующей опции.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода не является обязательным. Отсутствие вызова метода аналогично его вызову со значением параметра isVisitorDataClearingEnabled false.

метод экземпляра setNotFatalErrorHandler(NotFatalErrorHandler notFatalErrorHandler)

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

Параметр notFatalErrorHandler — любой класс, реализующий интерфейс NotFatalErrorHandler.

Возвращает тот же экземпляр класса SessionBuilder, но с установленным объектом NotFatalErrorHandler.

Не выбрасывает исключения.

Требует предварительно полученного экземпляра класса SessionBuilder. Для получения экземпляра класса WebimSession вызов метода не является обязательным.

метод экземпляра build()

Метод, который вызывается в заключение перечисленных выше методов для получения экземпляра WebimSession.

Не принимает параметры.

Возвращает объект WebimSession с установленными параметрами с помощью остальных методов экземпляра класса.

Выбрасывает IllegalArgumentException в следующих случаях:

  • не был установлен контекст (см. метод setContext(Context context)),

  • не было установлено название аккаунта (см. метод setAccountName(String accountName)),

  • не было установлено название размещения (см. метод setLocation(String location)),

  • не была установлена система push-уведомлений (см. метод setPushSystem(PushSystem pushSystem)), но был установлен токен для использования push-уведомлений (см. метод setPushToken(String pushToken)).

Требует предварительно полученного экземпляра класса SessionBuilder, а также последующего вызова методов setAccountName(String accountName) и setLocation(String location) (в любом порядке). Также предварительно могут быть вызваны и любые другие (в любом порядке и сочетании) методы экземпляра класса SessionBuilder.

метод экземпляра build(WebimSession.SessionCallback callback)

Метод, который вызывается в заключение перечисленных выше методов для получения экземпляра WebimSession.

Параметр callback — объект, реализующий интерфейс WebimSession.SessionCallback.

Возвращает объект WebimSession с установленными параметрами с помощью остальных методов экземпляра класса.

Выбрасывает IllegalArgumentException в следующих случаях:

Требует предварительно полученного экземпляра класса SessionBuilder, а также последующего вызова методов setAccountName(String accountName) и setLocation(String location) (в любом порядке). Также предварительно могут быть вызваны и любые другие (в любом порядке и сочетании) методы экземпляра класса SessionBuilder.

перечисляемый тип WebimLogVerbosityLevel

Определяет степень информативности передаваемых в объект WebimLog записей.

случай VERBOSE

Вся доступная информация будет передана объекту WebimLog с максимальным уровнем информативности:

  • параметры настройки сетевых соединений;

  • URL, HTTP-методы и параметры сетевых запросов;

  • HTTP-коды, полученные данные и ошибки ответов на сетевые запросы;

  • SQL-запросы и ошибки, возникающие при этих запросах;

  • полная информация, которая может быть полезна при дебаггинге, и дополнительные заметки.

случай DEBUG

Вся необходимая для дебаггинга информация будет передана объекту WebimLog с необходимым уровнем информативности:

  • параметры настройки сетевых соединений;

  • URL, HTTP-методы и параметры сетевых запросов;

  • HTTP-коды, полученные данные и ошибки ответов на сетевые запросы;

  • SQL-запросы и ошибки, возникающие при этих запросах;

  • полная информация, которая может быть полезна при дебаггинге, с умеренным уровнем информативности.

случай INFO

Объекту WebimLog будет передана справочная информация, а также все предупреждения и ошибки:

  • URL, HTTP-методы и параметры сетевых запросов;

  • HTTP-коды и ошибки ответов на сетевые запросы, которые не закончились успехом;

  • ошибки SQL-запросов.

случай WARNING

Объекту WebimLog будут переданы только предупреждения и ошибки:

  • HTTP-коды и ошибки ответов на сетевые запросы, которые не закончились успехом;

  • ошибки SQL-запросов.

случай ERROR

Объекту WebimLog будут переданы только ошибки:

  • HTTP-коды и ошибки ответов на сетевые запросы, которые не закончились успехом.

интерфейс ProvidedAuthorizationTokenStateListener

Если клиент предоставляет собственный механизм авторизации посетителя, это может быть реализовано с помощью передачи специального токена, который используется вместо посетительских полей (см. методы setVisitorFieldsJson(String visitorFieldsJson и setVisitorFieldsJson(JsonObject visitorFieldsJson)).

В момент генерации (или получения переданного значения) этого токена, вызывается метод update(String providedAuthorizationToken). Это означает, что сервис клиента должен передать данный токен в сервис Webim.

Данный механизм — это не самодостаточная реализация. Клиентский сервис должен поддерживать и реализовывать методы передачи токена и данных посетителя в сервис Webim.

метод экземпляра update(String providedAuthorizationToken)

Метод вызывается в двух случаях:

  1. Токен клиентского механизма авторизации передан или сгенерирован и требуется его отправка в сервис Webim силами клиента.

  2. От сервиса Webim получена информация о том, что используемый токен ему неизвестен. Это может случиться, например, если токен не был отправлен сервису Webim сервисом клиента или не был получен сервисом Webim. В этом случае сервису Webim необходимо предоставить токен и соответствующие ему данные посетителя.

Параметр providedAuthorizationToken — токен клиентского механизма авторизации.

Ничего не возвращает.

Не выбрасывает исключения

Не требует предварительного вызова никаких других методов.


интерфейс WebimSession

Интерфейс, позволяющий производить манипуляции с текущей сессией. Реализуется внутренними сущностями SDK.

Экземпляр класса WebimSession получается с помощью методов класса SessionBuilder.

N.B.

Cам по себе WebimSession не начинает чат. Для того, чтобы начать чат, нужно вызвать либо startChat(), либо startChatWithDepartmentKey(String departmentKey)

метод экземпляра resume()

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

Не принимает параметры.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект сессии был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект класса.

Не требует предварительного вызова никаких других методов. Необходим для полноценного функционирования сервиса в контексте приложения.

Скорость выполнения метода зависит от скорости получения ответа сервера. В результате ответа сервера могут быть вызваны различные методы MessageListenerChatStateListenerCurrentOperatorChangeListener и LocationSettingsChangeListener.

метод экземпляра pause()

Метод, который используется для приостановки сетевой активности сессии. Если сессия уже находится в приостановленном состоянии, метод не производит никаких действий.

Не принимает параметры.

Ничего не возвращает.

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект класса.

Не требует предварительного вызова никаких других методов. Для вызова метода сессия не должна находиться в деактивированном состоянии.

метод экземпляра destroy()

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

Не принимает параметры.

Ничего не возвращает.

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект класса.

Не требует предварительного вызова никаких других методов.

метод экземпляра destroyWithClearVisitorData()

Метод, который используется для деактивации сессии и экземпляра класса с удалением информации о пользователе. После вызова данного метода, никакие методы, относящиеся к сессии использованы быть не могут.

Не принимает параметры.

Ничего не возвращает.

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект класса.

Не требует предварительного вызова никаких других методов.

метод экземпляра getStream()

Метод, который необходимо вызвать для получения соответствующего сессии экземпляра MessageStream.

Не принимает параметры.

Возвращает соответствующий сессии экземпляр класса MessageStream. Каждый вызов данного метода в контексте одного объекта класса возвращает один и тот же объект MessageStream.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов, но для полноценного использования методов интерфейса MessageStream сессия не должна быть приостановлена или деактивирована (см. методы resume()pause() и destroy()).

метод экземпляра changeLocation(String location)

Метод используется для смены названия размещения в рамках существующей сессии. Вызов метода приблизительно аналогичен результату создания новой сессии с аналогичными параметрами, но с другим названием размещения.

Параметр location — название размещения, на которое необходимо сменить текущее значение сессии. Тип — String.

Ничего не возвращает.

Не выбрасывает исключения.

Для вызова метода сессия не должна находиться с приостановленном или деактивированном состоянии (см. методы resume()pause() и destroy()).

Скорость выполнения метода зависит от скорости получения ответа от сервера.

метод экземпляра setPushToken(String pushToken)

Метод используется для установки push-токена для получения push-уведомлений.

Параметр pushToken — токен, использующийся для получения push-уведомлений в приложении. Тип — String.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект сессии был деактивирован (см. метод destroy()), а также если система push-уведомлений не была сконфигурирована должным образом (см. метод setPushSystem(PushSystem pushSystem) класса SessionBuilder).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект класса.

метод экземпляра removePushToken(TokenCallback tokenCallback)

Метод используется для отключения push-уведомлений.

Параметр tokenCallback — объект, реализующий интерфейс TokenCallback.

Выбрасывает IllegalStateException, если объект сессии был деактивирован (см. метод destroy()), а также если система push-уведомлений не была сконфигурирована должным образом (см. метод setPushSystem(PushSystem pushSystem) класса SessionBuilder).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект класса.


интерфейс getMessagesCallback

Объект, реализующий интерфейс, может быть передан в параметре messagesCallback метода loadAllHistorySince(Message sinceMessage, getMessagesCallback messagesCallback) протокола MessageTracker.

метод receive(List messages)

Метод вызывается при успешном результате вызова метода loadAllHistorySince(Message sinceMessage, getMessagesCallback messagesCallback) протокола MessageTracker.

Параметр messages — список сообщений которые были найдены в результате поискового запроса.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов. Тип — List.


интерфейс Quote

Интерфейс является абстракцией, представляющей информацию о цитируемом сообщении.

Интерфейс реализован внутренними сущностями SDK. Объект Quote может быть получен с помощью метода getQuote() интерфейса Message().

метод getState()

С помощью этого метода можно получить статус цитаты.

Не принимает параметры.

Возвращает значение перечисляемого типа State.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getMessageAttachment()

С помощью этого метода можно получить вложение, если это файл, отправленный посетителем или оператором (Type FILE_FROM_OPERATOR или FILE_FROM_VISITOR).

Не принимает параметры.

Возвращает экземпляр класса MessageAttachment или null, если файл находится в процессе отправки.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getMessageId()

С помощью этого метода можно получить уникальный ID цитируемого сообщения.

Не принимает параметры.

Возвращает ID сообщения. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getMessageType()

С помощью этого метода можно получить тип цитируемого сообщения.

Не принимает параметры.

Возвращает значение перечисляемого типа MessageType.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getSenderName()

С помощью этого метода можно получить имя отправителя сообщения.

Не принимает параметры.

Возвращает имя отправителя сообщения. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getMessageText()

С помощью этого метода можно получить текст сообщения.

Не принимает параметры.

Возвращает текст сообщения. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getMessageTimestamp()

С помощью этого метода можно получить время отправки сообщения.

Не принимает параметры.

Возвращает количество миллисекунд, прошедших с начала эпохи до обработки сообщения сервером. Тип — long.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getAuthorId()

С помощью этого метода можно получить ID автора цитируемого сообщения.

Не принимает параметры.

Возвращает ID сообщения. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс Keyboard

Интерфейс является абстракцией, предоставляющей элементы клавиатуры чат-бота.

Интерфейс реализован внутренними сущностями SDK. Объект Keyboard может быть получен с помощью метода getKeyboard() интерфейса Message.

метод getButtons()

Метод, с помощью которого может быть получен список кнопок элемента клавиатуры.

Не принимает параметров.

Возвращает объект KeyboardButtons.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getState()

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

Не принимает параметров.

Возвращает значение перечисляемого типа State.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getKeyboardResponse()

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

Не принимает параметров.

Возвращает объект KeyboardResponse.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс KeyboardButtons

Интерфейс является абстракцией, представляющей информацию о кнопках клавиатуры чат-бота.

Интерфейс реализован внутренними сущностями SDK. Объект KeyboardButtons может быть получен с помощью метода getButtons() интерфейса Keyboard.

метод getId()

Метод, с помощью которого может быть получен уникальный ID кнопки в клавиатуре чат-бота.

Не принимает параметров.

Возвращает ID в текстовом виде. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getText()

Метод, с помощью которого может быть получен текст кнопки в клавиатуре чат-бота.

Не принимает параметров.

Возвращает название кнопки в текстовом виде. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс KeyboardResponse

Интерфейс является абстракцией, представляющей информацию о выбранной кнопке в клавиатуре чат-бота.

Интерфейс реализован внутренними сущностями SDK. Объект KeyboardResponse может быть получен с помощью метода getKeyboardResponse() интерфейса Keyboard.

метод getbuttonId

Метод, с помощью которого может быть получен уникальный ID выбранной кнопки в клавиатуре чат-бота.

Не принимает параметров.

Возвращает ID в текстовом виде. Тип — String. ID кнопки может содержать только латинские буквы, цифры, символы дефиса и нижнего подчёркивания и должен быть не более 24 символов в длину. ID кнопки, генерируемый на стороне Webim, имеет формат UUID4, а ID, генерируемый извне (в т.ч. сторонними ботами), только проверяется на соответствие данным выше критериям.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getMessageId

Метод, с помощью которого может быть получен ID сообщения, в котором была выбрана кнопка.

Не принимает параметров.

Возвращает название ID сообщения в текстовом виде. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс MessageStream

Интерфейс, реализуемый внутренними сущностями SDK.

Экземпляр класса, с помощью которого вызываются методы интерфейса, в рамках сессии существует только один и получается с помощью метода getStream()экземпляра класса WebimSession. Методы интерфейса используются непосредственно для взаимодействия с сервисом Webim (таких как отправка и получение сообщений).

Для использования методов интерфейса необходимо, чтобы сессия не находилась в приостановленном или деактивированном виде (см. методы resume()pause() и destroy() класса WebimSession).

метод closeSurvey(SurveyCloseCallback callback)

С помощью данного метода можно закрыть опрос.

Параметр callback — объект, реализующий интерфейс SurveyCloseCallback.

Ничего не возвращает.

Исключений не выбрасывает.

Также если закрытие пройдет успешно будет вызван метод SurveyListener.onSurveyCanceled().

метод deleteUploadedFiles(String fileGuid, DeleteUploadedFileCallback deleteUploadedFileCallback)

Метод, с помощью которого можно удалить файлы с сервера Webim.

Параметр fileGuid — id удаляемого файла (см. интерфейс UploadedFile). Тип — String.

Параметр deleteUploadedFileCallback — объект, реализующий методы интерфейса DeleteUploadedFileCallback.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

Скорость выполнения метода зависит от скорости получения ответа сервера. В результате ответа сервера могут быть вызваны различные методы MessageListener.

метод getVisitSessionState()

Метод, с помощью которого можно получить текущее состояние сессии.

Не принимает параметры.

Возвращает текущее состояние сессии значением типа VisitSessionState.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getChatState()

Метод, с помощью которого можно уточнить состояние текущего чата.

Не принимает параметры.

Возвращает значение перечислимого типа ChatState.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

метод getUnreadByOperatorTimestamp()

Не принимает параметров.

Возвращает момент времени (типа Date), после которого все сообщения чата являются непрочитанными оператором (на момент полученного от сервера обновления).

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getUnreadByVisitorMessageCount()

Не принимает параметров.

Возвращает количество непрочитанных сообщений пользователем.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getUnreadByVisitorTimestamp()

Не принимает параметров.

Возвращает момент времени (типа Date), после которого все сообщения чата являются непрочитанными посетителем (на момент полученного от сервера обновления).

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getDepartmentList()

Не принимает параметров.

Возвращает список отделов списком объектов типа Department или null, если отделы не используются или список отделов пока не был получен.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getLocationSettings()

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

Не принимает параметров.

Возвращает объект класса LocationSettings, соответствующий текущей сессии.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getCurrentOperator()

С помощью этого метода можно уточнить информацию об актуальном операторе (если он есть) текущего чата.

Не принимает параметров.

Возвращает объект класса Operator или null, если у чата в данный момент нет оператора.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

метод getLastOperatorRating(Operator.Id operatorId)

С помощью этого метода можно уточнить текущий рейтинг (в целых числах от 0 до 5) оператора, зная ID этого оператора (см. метод getId() интерфейса Operator).

Параметр ID — ID оператора, рейтинг которого должен вернуть метод. Тип — Operator.Id.

Возвращает рейтинг оператора с ID, соответствующему значению параметра ID, в целых числах от 1 до 5 или 0, если рейтинг у оператора отсутствует. Тип — Int.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

метод rateOperator(Operator.Id operatorId, int rate, RateOperatorCallback rateOperatorCallback)

С помощью этого метода можно отправить оценку оператора текущего посетителя.

Параметр operatorId — ID оператора, оценку которого необходимо отправить сервису Webim. Тип — Operator.Id.

Параметр rate — оценка оператора, которую необходимо отправить сервису Webim. Оценка должна быть целым числом от 1 до 5. Тип — int.

Параметр rateOperatorCallback — объект, реализующий интерфейс rateOperatorCallback.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

Скорость выполнения метода зависит от скорости получения ответа от серверa.

!!! Warning "Внимание!"  Реализация механизма оценки оператора остаётся за разработчиками мобильного приложения!

метод respondSentryCall(String id)

С помощью этого метода можно перевести чат на дежурного оператора.

Параметр ID — ID сообщения о переводе на дежурного оператора. Тип — String.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

Скорость выполнения метода зависит от скорости получения ответа от серверa.

метод replyMessage(String message, Message quotedMessage)

Метод используется для цитирования сообщения посетителя в сервис Webim.

Параметр message — отправляемое сообщение. Тип — String.

Параметр quotedMessage — цитируемое сообщение. Тип — Message.

Возвращает true, если сообщение процитировано, и false в обратом случае.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов. Если существуют объекты MessageTracker. и MessageListener., отправка сообщения вызовет метод messageAdded(Message before, Message message) интерфейса MessageListener с новым сообщением со статусом SENDING перечислимого типа SendStatus.

Скорость выполнения метода зависит от скорости получения ответа сервера. В результате ответа сервера могут быть вызваны различные методы MessageListener.

метод searchMessages(String query, SearchMessagesCallback searchMessagesCallback)

С помощью этого метода можно отправить запрос на поиск в истории чата.

Параметр query — содержит запрос по которому будет выполнен поиск. Тип — String.

Параметр searchMessagesCallback — объект, реализующий интерфейс SearchMessagesCallback.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

!!! Note "N.B.": данный метод работает не у всех клиентов, о доступности уточняйте у вашего аккаунт-менеджера.

метод sendKeyboardRequest(String requestMessageId, String buttonId, sendKeyboardCallback sendKeyboardCallback)

Метод используется для отправки выбранного элемента в клавиатуре чат-бота в сервис Webim.

Параметр requestMessageId — Id запрашиваемого сообщения.

Параметр buttonId — Id элемента в клавиатуре чат-бота.

Параметр sendKeyboardCallback — объект, реализующий методы интерфейса SendKeyboardCallback.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод метод destroy()).

Не требует предварительного вызова никаких других методов.

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Скорость выполнения метода зависит от скорости получения ответа сервера.

метод sendSticker(int stickerId, SendStickerCallback sendStickerCallback)

С помощью этого метода можно отправить стикер в чат.

Параметр stickerId — ID стикера, который необходимо отправить сервису Webim. Тип — int.

Параметр sendStickerCallback — объект, реализующий интерфейс SendStickerCallback.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

Скорость выполнения метода зависит от скорости получения ответа от серверa.

метод sendSurveyAnswer(String surveyAnswer, SurveyAnswerCallback callback)

С помощью этого метода можно отправить ответ на текущий вопрос, полученный с помощью метода SurveyListener.onNextQuestion(Survey.Question question).

Параметр surveyAnswer — ответ, для вопроса типа 'stars' — ответом будет являться целое число от 1 до 5, определяющее оценку оператора. Для вопроса типа 'radio' ответ — это индекс элемента в массиве options, начиная с 1. Для вопроса типа 'comment' ответ — это строчка, представляющая комментарий пользователя.

Параметр callback — объект, реализующий интерфейс SurveyAnswerCallback.

Ничего не возвращает.

Выбрасывает IllegalStateException, если предварительно не был вызван метод MessageStream.setSurveyListener(SurveyListener surveyListener).

Требует предварительного вызова метода MessageStream.setSurveyListener(SurveyListener surveyListener).

метод setSurveyListener(SurveyListener surveyListener)

С помощью этого метода можно подписаться на изменение состояния объекта Survey, а также на получение новых вопросов.

Параметр surveyListener — объект, реализующий интерфейс SurveyListener.

Ничего не возвращает.

Исключений не выбрасывает.

Не требует предварительного вызова никаких других методов.

метод setGreetingMessageListener(GreetingMessageListener listener)

С помощью этого метода можно получить приветственное сообщение.

Параметр listener — объект класса, реализующего интерфейс GreetingMessageListener.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

метод sendFiles(List<UploadedFile> uploadedFiles, SendFilesCallback sendFilesCallback)

Метод, с помощью которого можно отправить отправить файлы на сервер Webim.

Параметр uploadedFiles — список файлов которые необходимо отправить.

Параметр sendFilesCallback — объект, реализующий методы интерфейса SendFilesCallback.

Возвращает ID, сгенерированный случайным образом для данного сообщения, который может быть использован для идентификации данного конкретного сообщения внутри логики приложения. Тип — Message.Id.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Прежде чем вызвать требуется загрузить файлы на сервер Webim (см. метод uploadFilesToServer(File file, String name, String mimeType, UploadFileToServerCallback uploadFileToServerCallback)). Если существуют объекты MessageTracker и MessageListener, отправка сообщения вызовет метод messageAdded(Message before, Message message) интерфейса MessageListener с новым сообщением со статусом SENDING перечислимого типа SendStatus.

Скорость выполнения метода зависит от скорости получения ответа сервера. В результате ответа сервера могут быть вызваны различные методы MessageListener.

метод startChat()

Метод начинает чат без назначения к отделу (назначение к отделу «Без отдела»). В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Не принимает параметры.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

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

Скорость выполнения метода зависит от скорости получения ответа от сервера.

В результате может быть вызван метод onStateChange(ChatState oldState, ChatState newState) интерфейса ChatStateListener.

N.B.

Приветственное сообщение для посетителя появится только в том случае, если использован метод startChat() и написано приветственное сообщение для оператора без отдела, либо же при использовании метода startChatWithDepartmentKey(String departmentKey) (при условии, что приветственные сообщения для каждого отдела написаны).

метод startChatWithDepartmentKey(String departmentKey)

Метод начинает чат с назначением на указанный отдел. В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Параметр departmentKey — значение ключа отдела, которое может быть получено методом getKey() интерфейса Department. Тип — String.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

При отправке сообщения или файла пользователем, чат начинается автоматически, но если текущее состояние VisitSessionStateDEPARTMENT_SELECTION, чат необходимо начать именно с помощью данного метода или метода startChatWithDepartmentKeyFirstQuestion(String departmentKey, String firstQuestion).

В результате может быть вызван метод onStateChange(ChatState oldState, ChatState newState) интерфейса ChatStateListener.

N.B.

Приветственное сообщение для посетителя появится только в том случае, если использован метод startChat() и написано приветственное сообщение для оператора без отдела, либо же при использовании метода startChatWithDepartmentKey(String departmentKey) (при условии, что приветственные сообщения для каждого отдела написаны).

метод startChatWithFirstQuestion(String firstQuestion)

Метод начинает чат и одновременно посылает первое сообщение посетителя.

В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Параметр firstQuestion —  первое сообщение пользователя. Тип — String.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

В результате может быть вызван метод onStateChange(ChatState oldState, ChatState newState) интерфейса ChatStateListener.

метод startChatWithCustomFields(String customFields)

Метод начинает чат с указанными дополнительными полями.

В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Параметр customFields —  дополнительные поля в формате JSON. Тип — String.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

В результате может быть вызван метод onStateChange(ChatState oldState, ChatState newState) интерфейса ChatStateListener.

метод startChatWithDepartmentKeyFirstQuestion(String departmentKey, String firstQuestion)

Метод начинает чат с указанием определенного отдела и одновременно посылает первое сообщение посетителя.

В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Параметр departmentKey — значение ключа отдела, которое может быть получено методом getKey() интерфейса Department. Тип — String.

Параметр firstQuestion —  первое сообщение пользователя. Тип — String.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

При отправке сообщения или файла пользователем, чат начинается автоматически, но если текущее состояние VisitSessionStateDEPARTMENT_SELECTION, чат необходимо начать именно с помощью данного метода или метода startChatWithDepartmentKey(String departmentKey).

В результате может быть вызван метод [onStateChange(ChatState oldState, ChatState newState)](#changed-state-previous-state-to-new-state) интерфейса ChatStateListener.

метод startChatWithCustomFieldsFirstQuestion(String customFields, String firstQuestion)

Метод начинает чат с указанием дополнительных полей и одновременно посылает первое сообщение посетителя.

В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Параметр customFields —  дополнительные поля в формате JSON. Тип — String.

Параметр firstQuestion —  первое сообщение пользователя. Тип — String.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

В результате может быть вызван метод onStateChange(ChatState oldState, ChatState newState) интерфейса ChatStateListener.

метод startChatWithCustomDepartmentKey(String customFields, String departmentKey)

Метод начинает чат с указанием дополнительных полей и отдела.

В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Параметр customFields —  дополнительные поля в формате JSON. Тип — String.

Параметр departmentKey — значение ключа отдела, которое может быть получено методом getKey() интерфейса Department. Тип — String.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

При отправке сообщения или файла пользователем, чат начинается автоматически, но если текущее состояние VisitSessionStateDEPARTMENT_SELECTION, чат необходимо начать именно с помощью данного метода или метода startChatWithDepartmentKey(String departmentKey).

В результате может быть вызван метод onStateChange(ChatState oldState, ChatState newState) интерфейса ChatStateListener.

метод startChatWithFirstQuestionCustomFieldsDepartmentKey(String firstQuestion, String customFields, String departmentKey)

Метод начинает чат с указанием дополнительных полей и отдела и одновременно посылает первое сообщение посетителя.

В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на QUEUE.

Параметр firstQuestion —  первое сообщение пользователя. Тип — String.

Параметр customFields —  дополнительные поля в формате JSON. Тип — String.

Параметр departmentKey — значение ключа отдела, которое может быть получено методом getKey() интерфейса Department. Тип — String.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

При отправке сообщения или файла пользователем, чат начинается автоматически, но если текущее состояние VisitSessionStateDEPARTMENT_SELECTION, чат необходимо начать именно с помощью данного метода или метода startChatWithDepartmentKey(String departmentKey).

В результате может быть вызван метод onStateChange(ChatState oldState, ChatState newState) интерфейса ChatStateListener.

метод closeChat() (@deprecated)

Метод отправляет сигнал сервису Webim, что посетитель закончил чат. В терминах сервиса Webim меняет у текущего чата состояние, представленное типом ChatState, на CLOSED_BY_VISITOR.

Не принимает параметры.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов. Вызов данного метода не обязателен.

Скорость выполнения метода зависит от скорости получения ответа от сервера.

В результате может быть вызван метод onStateChange(ChatState oldState, ChatState newState) интерфейса ChatStateListener.

метод setChatRead()

Метод отправляет сигнал сервису Webim, что посетитель прочитал чат. Не принимает параметры.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов. Вызов данного метода не обязателен.

метод setVisitorTyping(String draftMessage)

Метод используется для отправки сигнала сервису Webim, что посетитель вводит сообщение (или прекратил его (сообщения) ввод).

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

Параметр draftMessage — сообщение, которое уже ввел посетитель в соответствующее поле, но не отправил его. Тип — String, Значение параметра null соответствует ситуации, когда посетитель прекратил ввод сообщения либо стер написанное из поля ввода.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

Результат выполнения метода зависит от скорости работы сети.

метод sendMessage(String message, String data, DataMessageCallback dataMessageCallback)

Метод используется для отправки сообщения посетителя в сервис Webim.

Параметр message — отправляемое сообщение. Тип — String.

Параметр data используется для передачи параметров сообщения на сервер (если версия сервера поддерживает данный функционал) в JSON-формате. Тип — String.

Параметр dataMessageCallback — объект, реализующий методы интерфейса DataMessageCallback.

Возвращает ID, сгенерированный случайным образом для данного сообщения, который может быть использован для идентификации данного конкретного сообщения внутри логики приложения. Тип — Message.Id.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов. Если существуют объекты MessageTracker и MessageListener, отправка сообщения вызовет метод messageAdded(Message before, Message message) интерфейса MessageListenerс новым сообщением со статусом SENDING перечислимого типа SendStatus.

Скорость выполнения метода зависит от скорости получения ответа сервера. В результате ответа сервера могут быть вызваны различные методы MessageListener.

метод sendMessage(String message, boolean isHintQuestion)

Метод используется для отправки сообщения посетителя в сервис Webim.

Параметр message — отправляемое сообщение. Тип — String.

Параметр isHintQuestion используется, если приложение обладает собственным механизмом показа подсказок пользователю. Тип — boolean. В случае, если посетитель не ввел сообщение вручную, а выбрал одну из предлагаемых подсказок, значение параметра должно быть true, и false — в обратном случае. Параметр не обязательный для использования и может быть опущен.

Возвращает ID, сгенерированный случайным образом для данного сообщения, который может быть использован для идентификации данного конкретного сообщения внутри логики приложения. Тип — Message.Id.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов. Если существуют объекты MessageTracker и MessageListener, отправка сообщения вызовет метод messageAdded(Message before, Message message) интерфейса MessageListenerс новым сообщением со статусом SENDING перечислимого типа SendStatus.

Скорость выполнения метода зависит от скорости получения ответа сервера. В результате ответа сервера могут быть вызваны различные методы MessageListener.

метод sendMessage(String message)

Полностью соответствует методу send(String message, boolean isHintQuestion) с опущенным параметром isHintQuestion.

метод sendFile(File file, String name, String mimeType, SendFilesCallback callback)

Метод используется для отправки файла от посетителя оператору.

Параметр file — сам файл в формате File.

Параметр name — название файла. Тип — String.

Параметр mimeType — MIMЕ-тип передаваемого файла. Тип — String.

Параметр callback — объект, реализующий методы интерфейса SendFilesCallback.

Возвращает ID, сгенерированный случайным образом для данного сообщения, который может быть использован для идентификации данного конкретного сообщения внутри логики приложения. (Отправляемый файл тоже является типом сообщения.) Тип — Message.Id.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов. Если существуют объекты MessageTracker и MessageListener, отправка сообщения вызовет метод messageAdded(Message before, Message message) интерфейса MessageListenerс новым сообщением со статусом SENDING перечислимого типа SendStatus.

Скорость выполнения метода зависит от скорости получения ответа сервера. В результате ответа сервера могут быть вызваны различные методы MessageListener.

метод newMessageTracker(MessageListener listener)

Метод используется для получения экземпляра класса MessageTracker.

Параметр listener — объект класса, реализующего методы интерфейса MessageListener.

Возвращает экземпляр класса MessageTracker, соответствующий текущему объекту MessageStream.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов. Получение нового экземпляра класса MessageTracker автоматически уничтожает предыдущий экземпляр класса MessageTracker.

метод setVisitSessionStateListener(VisitSessionStateListener visitSessionStateListener)

Метод передает в SDK ссылку на объект, реализующий методы интерфейса VisitSessionStateListener.

Параметр visitSessionStateListener — объект, реализующий методы интерфейса VisitSessionStateListener.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

метод setChatStateListener(ChatStateListener listener)

Метод передает в SDK ссылку на объект, реализующий методы интерфейса ChatStateListener.

Параметр chatStateListener — объект, реализующий методы интерфейса ChatStateListener.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

метод setCurrentOperatorChangeListener(CurrentOperatorChangeListener listener)

Метод передает в SDK ссылку на объект, реализующий методы интерфейса CurrentOperatorChangeListener.

Параметр listener — объект, реализующий методы интерфейса CurrentOperatorChangeListener.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

метод setDepartmentListChangeListener(DepartmentListChangeListener departmentListChangeListener)

Метод передает в SDK ссылку на объект, реализующий методы интерфейса DepartmentListChangeListener.

Параметр departmentListChangeListener — объект, реализующий методы интерфейса DepartmentListChangeListener.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

метод setOperatorTypingListener(OperatorTypingListener listener)

Метод передает в SDK ссылку на объект, реализующий методы интерфейса OperatorTypingListener.

Параметр listener — объект, реализующий методы интерфейса OperatorTypingListener.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

метод setLocationSettingsChangeListener(LocationSettingsChangeListener locationSettingsChangeListener)

Метод передает в SDK ссылку на объект, реализующий методы интерфейса LocationSettingsChangeListener.

Параметр locationSettingsChangeListener — объект, реализующий методы интерфейса LocationSettingsChangeListener.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод setOnlineStatusChangeListener(OnlineStatusChangeListener onlineStatusChangeListener)

Метод передает в SDK ссылку на объект, реализующий методы интерфейса OnlineStatusChangeListener.

Параметр onlineStatusChangeListener — объект, реализующий методы интерфейса OnlineStatusChangeListener.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод setUnreadByOperatorTimestampChangeListener(UnreadByOperatorTimestampChangeListener listener)

Метод передает в SDK ссылку на объект, реализующий методы интерфейса UnreadByOperatorTimestampChangeListener.

Параметр listener — объект, реализующий методы интерфейса UnreadByOperatorTimestampChangeListener.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод setUnreadByVisitorMessageCountChangeListener(UnreadByVisitorMessageCountChangeListener listener)

Метод передает в SDK ссылку на объект, реализующий методы интерфейса UnreadByVisitorMessageCountChangeListener.

Параметр listener — объект, реализующий методы интерфейса UnreadByVisitorMessageCountChangeListener.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод setUnreadByVisitorTimestampChangeListener(UnreadByVisitorTimestampChangeListener listener)

Метод передает в SDK ссылку на объект, реализующий методы интерфейса UnreadByVisitorTimestampChangeListener.

Параметр listener — объект, реализующий методы интерфейса UnreadByVisitorTimestampChangeListener.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод uploadFilesToServer(File file, String name, String mimeType, UploadFileToServerCallback uploadFileToServerCallback)

Метод, с помощью которого можно загрузить файлы на сервер Webim.

Параметр file — сам файл в формате File.

Параметр name — название файла. Тип — String.

Параметр mimeTypeMIMЕ-тип передаваемого файла. Тип — String.

Параметр uploadFileToServerCallback — объект, реализующий методы интерфейса UploadFileToServerCallback.

Возвращает ID, сгенерированный случайным образом для данного сообщения, который может быть использован для идентификации данного конкретного сообщения внутри логики приложения. Тип — Message.Id.

Выбрасывает IllegalStateException, если объект WebimSession был деактивирован (см. метод destroy()).

Выбрасывает RuntimeException, если метод был вызван из потока, отличного от того, в котором был создан объект WebimSession.

Не требует предварительного вызова никаких других методов.

Скорость выполнения метода зависит от скорости получения ответа сервера. В результате ответа сервера могут быть вызваны различные методы MessageListener.


интерфейс DataMessageCallback

Интерфейс, методы которого реализуются каким-либо классом приложения.

Объект, подчиняющийся интерфейсу, может быть передан в параметре callback-метода sendMessage(String message, String data, DataMessageCallback dataMessageCallback) интерфейса MessageStream.

метод onSuccess(Message.Id id)

Метод вызывается при успешной отправке сообщения методом sendMessage(String message, String data, DataMessageCallback dataMessageCallback) интерфейса MessageStream.

Параметр ID — ID соответствующего сообщения. Тип — Message.Id.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

Метод будет вызван после завершения работы метода sendMessage(String message, String data, DataMessageCallback dataMessageCallback).

метод onFailure(Message.Id id, WebimError<DataMessageError> error)

Вызывается при неудачной отправке сообщения методом sendFile(File file, String name, String mimeType, SendFilesCallback callback) интерфейса MessageStream.

Параметр ID — ID соответствующего сообщения. Тип — Message.Id.

Параметр error — ошибка, воспрепятствовавшая успешной отправке сообщения. Тип — WebimError<DataMessageError>.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

Метод будет вызван после завершения работы метода sendMessage(String message, String data, DataMessageCallback dataMessageCallback).


интерфейс DeleteUploadedFileCallback

Объект, подчиняющийся интерфейсу, может быть передан в параметре deleteUploadedFileCallback метода deleteUploadedFiles(String fileGuid, DeleteUploadedFileCallback deleteUploadedFileCallback) интерфейса MessageStream.

метод onSuccess()

Метод вызывается при успешной отправке файла методом deleteUploadedFiles(String fileGuid, DeleteUploadedFileCallback deleteUploadedFileCallback) интерфейса MessageStream.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

Метод будет вызван после завершения работы метода deleteUploadedFiles(String fileGuid, DeleteUploadedFileCallback deleteUploadedFileCallback).

метод onFailure(WebimError<DeleteUploadedFileError> error)

Вызывается при неудачной отправке файла методом deleteUploadedFiles(String fileGuid, DeleteUploadedFileCallback deleteUploadedFileCallback) интерфейса MessageStream.

Параметр error — ошибка, воспрепятствовавшая успешной отправке файла. Тип — DeleteUploadedFileError.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

Метод будет вызван после завершения работы метода deleteUploadedFiles(String fileGuid, DeleteUploadedFileCallback deleteUploadedFileCallback).


интерфейс KeyboardRequest

Интерфейс является абстракцией, представляющей информацию о выбранной кнопке в клавиатуре чат-бота.

Интерфейс реализован внутренними сущностями SDK. Объект KeyboardRequest может быть получен с помощью метода getKeyboardRequest() интерфейса Message.

метод getButtons()

Метод, с помощью которого может быть получена выбранная кнопка элемента клавиатуры.

Не принимает параметров.

Возвращает объект KeyboardButtons.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getMessageId()

Метод, с помощью которого может быть получен ID сообщения, в котором была выбрана кнопка.

Не принимает параметров.

Возвращает название ID сообщения в текстовом виде. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс SendFilesCallback

Интерфейс, методы которого реализуются каким-либо классом приложения.

Объект, подчиняющийся интерфейсу, может быть передан в параметре sendFilesCallback метода sendFiles(List<UploadedFile> uploadedFiles, SendFilesCallback sendFilesCallback) интерфейса MessageStream.

метод onSuccess(Message.Id id)

Метод вызывается при успешной отправке файла методом sendFiles(List<UploadedFile> uploadedFiles, SendFilesCallback sendFilesCallback) интерфейса MessageStream.

Параметр ID — ID соответствующего сообщения. Тип — Message.Id.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

Метод будет вызван после завершения работы метода sendFiles(List<UploadedFile> uploadedFiles, SendFilesCallback sendFilesCallback).

метод onFailure(Message.Id id, WebimError<SendFileError> error)

Вызывается при неудачной отправке файла методом sendFiles(List<UploadedFile> uploadedFiles, SendFilesCallback sendFilesCallback) интерфейса MessageStream.

Параметр ID — ID соответствующего сообщения. Тип — Message.Id.

Параметр error — ошибка, воспрепятствовавшая успешной отправке файла. Тип — WebimError<SendFileError>.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

Метод будет вызван после завершения работы метода sendFiles(List<UploadedFile> uploadedFiles, SendFilesCallback sendFilesCallback).


интерфейс SendStickerCallback

Объект, реализующий интерфейс, может быть передан в параметре sendStickerCallback метода sendSticker(int, SendStickerCallback) протокола MessageStream.

метод onSuccess()

Метод вызывается при успешном результате вызова метода sendSticker(int, SendStickerCallback) протокола MessageStream.

Не принимает параметры.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод onFailure(WebimError sendStickerErrorWebimError)

Метод вызывается при неуспешном результате вызова метода sendSticker(int, SendStickerCallback) протокола MessageStream.

Параметр sendStickerErrorWebimError — возникшая ошибка. Тип — WebimError.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс Sticker

Интерфейс является абстракцией, представляющей информацию о стикере в сообщении.

Интерфейс реализован внутренними сущностями SDK. Объект Sticker может быть получен с помощью метода getSticker() интерфейса Message.

метод getStickerId()

С помощью этого метода можно получить ID стикера, отправленный посетителем (Type_STICKER_VISITOR).

Не принимает параметры.

Возвращает ID сообщения. Тип — int.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс RateOperatorCallback

Объект, реализующий интерфейс, может быть передан в параметре rateOperatorCallback метода rateOperator(Operator.Id operatorId, int rate, RateOperatorCallback rateOperatorCallback) протокола MessageStream.

метод onSuccess()

Метод вызывается при успешном результате вызова метода rateOperator(Operator.Id operatorId, int rate, RateOperatorCallback rateOperatorCallback) протокола MessageStream.

Не принимает параметры.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод onFailure(WebimError<RateOperatorError> rateOperatorError)

Метод вызывается при неуспешном результате вызова метода rateOperator(Operator.Id operatorId, int rate, RateOperatorCallback rateOperatorCallback) протокола MessageStream.

Параметр rateOperatorError — возникшая ошибка. Тип — WebimError<RateOperatorError>.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс VisitSessionStateListener

Интерфейс, методы которого реализуются каким-либо классом приложения. Объект, реализующий интерфейс, может быть передан в параметре visitSessionStateListenerметода setVisitSessionStateListener(VisitSessionStateListener visitSessionStateListener) интерфейса MessageStream.

Используется для отслеживания изменения статуса сессии.

метод onStateChange(VisitSessionState previousState, VisitSessionState newState)

Метод вызывается при изменении статуса сессии.

Параметр previosState — предыдущий статус сессии. Тип — VisitSessionState.

Параметр newState — новый статус сессии. Тип — VisitSessionState.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс DepartmentListChangeListener

Интерфейс, методы которого реализуются каким-либо классом приложения. Объект, реализующий интерфейс, может быть передан в параметре departmentListChangeListener метода setDepartmentListChangeListener(DepartmentListChangeListener departmentListChangeListener) интерфейса MessageStream.

Используется для отслеживания изменения списка отделов.

метод receivedDepartmentList(List<Department> departmentList)

Метод вызывается при получении нового списка отделов.

Параметр departmentList — получаемый список отделов. Тип — List<[Department](#department)>.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс LocationSettings

Методы интерфейса реализованы внутренними сущностями SDK. Экземпляр класса, реализующий интерфейс, может быть получен методом getLocationSettings() объекта MessageStream.

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

интерфейс ChatStateListener

Интерфейс, методы которого реализуются каким-либо классом приложения. Объект, реализующий интерфейс, может быть передан в параметре listener метода setChatStateListener(ChatStateListener listener) интерфейса MessageStream.

Используется для отслеживания изменений состояния текущего чата.

метод onStateChange(ChatState oldState, ChatState newState)

Метод вызывается, когда состояние текущего чата изменилось.

Параметр oldState — предыдущее состояние чата. Тип — ChatState.

Параметр newState — новое состояние чата. Тип — ChatState.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс CurrentOperatorChangeListener

Интерфейс, методы которого реализуются каким-либо классом приложения. Объект, реализующий интерфейс, может быть передан в параметре listener метода setCurrentOperatorChangeListener(CurrentOperatorChangeListener listener)интерфейса MessageStream.

Используется для отслеживания изменения оператора текущего чата.

метод onOperatorChanged(Operator oldOperator, Operator newOperator)

Метод вызывается, когда оператор текущего чата изменился (или оператора не стало).

Параметр oldOperator — предыдущий оператор. Тип — Operator.

Параметр newOperator — новое состояние чата. Тип — Operator. Принимает значение null в случае, если оператор покинул чат.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс OperatorTypingListener

Интерфейс, методы которого реализуются каким-либо классом мобильного приложения. Объект класса, реализующий интерфейс, может быть передан в параметре listener метода setOperatorTypingListener(OperatorTypingListener listener) интерфейса MessageStream.

Используется для оповещения, когда оператор начинает вводить сообщение.

метод onOperatorTypingStateChanged(boolean isTyping)

Метод вызывается, когда оператор текущего чата начал вводить сообщение.

Параметр isTyping — булево значение, принимающее значение true, если оператор вводить сообщение, и false — в противном случае.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс LocationSettingsChangeListener

Интерфейс, методы которого реализуются каким-либо классом мобильного приложения. Объект класса, реализующий интерфейс, может быть передан в параметре locationSettingsChangeListener метода setLocationSettingsChangeListener(LocationSettingsChangeListener locationSettingsChangeListener) интерфейса MessageStream.

Используется для отслеживания изменений в текущих настройках размещения.

метод onLocationSettingsChanged(LocationSettings oldLocationSettings, LocationSettings, newLocationSettings)

Метод вызывается, когда настройки текущего размещения изменились.

Параметр oldLocationSettings — предыдущее значение настроек текущего размещения. Тип — LocationSettings.

Параметр newLocationSettings — новое значение настроек текущего размещения. Тип — LocationSettings.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс OnlineStatusChangeListener

Интерфейс адаптируется сущностями мобильного приложения. Объект класса, реализующий интерфейс, может быть передан в параметре onlineStatusChangeListener метода setOnlineStatusChangeListener(OnlineStatusChangeListener onlineStatusChangeListener) интерфейса MessageStream.

Используется для получения оповещений при изменении статуса сессии. Статус сессии описан в значениях перечисляемого типа OnlineStatus.

метод onOnlineStatusChanged(OnlineStatus oldOnlineStatus, OnlineStatus newOnlineStatus)

Метод вызывается при изменении статуса сессии.

Параметр oldOnlineStatus — предыдущее состояние сессии. Тип — OnlineStatus.

Параметр newOnlineStatus — новое (полученное) состояние сессии. Тип — OnlineStatus.

Ничего не возвращает.

Не выбрасывает исключения.

Метод вызывается в результате полученного уведомления от сервиса Webim.


интерфейс UnreadByOperatorTimestampChangeListener

Интерфейс, методы которого реализуются каким-либо классом мобильного приложения. Объект класса, реализующий интерфейс, может быть передан в параметре listener метода setUnreadByOperatorTimestampChangeListener(UnreadByOperatorTimestampChangeListener listener) интерфейса MessageStream.

метод onUnreadByOperatorTimestampChanged(Date newTimestamp)

Метод, который вызывается при изменении параметра, возвращаемого методом getUnreadByOperatorTimestamp().

Параметр newTimestamp — новое значение, возвращаемое методом getUnreadByOperatorTimestamp().

Ничего не возвращает.

Не выбрасывает исключения.

Метод вызывается в результате полученного уведомления от сервиса Webim.


интерфейс UnreadByVisitorMessageCountChangeListener

Интерфейс, методы которого реализуются каким-либо классом мобильного приложения. Объект класса, реализующий интерфейс, может быть передан в параметре listener метода setUnreadByVisitorMessageCountChangeListener(UnreadByVisitorMessageCountChangeListener listener) интерфейса MessageStream.

N.B.

Объект класса, реализующий интерфейс, можно получить только после старта сессии методом resume(). Данный объект увеличивает значение количества непрочитанных сообщений, посылая каждые 30 секунд соответствующие запросы на сервер.

метод onUnreadByVisitorMessageCountChanged(int newMessageCount)

Метод, который вызывается при изменении параметра, возвращаемого методом getUnreadByVisitorMessageCount().

Параметр newMessageCount — новое значение, возвращаемое методом getUnreadByVisitorMessageCount().

Ничего не возвращает.

Не выбрасывает исключения.

Метод вызывается в результате полученного уведомления от сервиса Webim.


интерфейс UnreadByVisitorTimestampChangeListener

Интерфейс, методы которого реализуются каким-либо классом мобильного приложения. Объект класса, реализующий интерфейс, может быть передан в параметре listener метода setUnreadByVisitorTimestampChangeListener(UnreadByVisitorTimestampChangeListener listener) интерфейса MessageStream.

метод onUnreadByVisitorTimestampChanged(Date newTimestamp)

Метод, который вызывается при изменении параметра, возвращаемого методом getUnreadByVisitorTimestamp().

Параметр newTimestamp — новое значение, возвращаемое методом getUnreadByVisitorTimestamp().

Ничего не возвращает.

Не выбрасывает исключения.

Метод вызывается в результате полученного уведомления от сервиса Webim.


интерфейс Config

метод getId()

С помощью этого метода можно получить id конфигурации опроса.

Не принимает параметры.

Возвращает ID конфигурации. Тип int.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getDescriptor()

С помощью этого метода можно получить объект дескриптора данного опроса.

Не принимает параметры.

Возвращает экземпляр класса Descriptor.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getVersion()

С помощью этого метода можно получить информацию о версии текущей конфигурации опроса.

Не принимает параметры.

Возвращает номер версии. Тип String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс CurrentQuestionInfo

метод getFormId()

С помощью этого метода можно получить ID формы текущего вопроса.

Не принимает параметры.

Возвращает ID формы. Тип int.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getQuestionId()

С помощью этого метода можно получить индекс текущего вопроса в списке вопросов начиная с 0, возвращаемых методом getQuestions().

Не принимает параметры.

Возвращает индекс текущего вопроса. Тип int.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс Descriptor

метод getForms()

С помощью этого метода можно получить список форм текущего опроса.

Не принимает параметры.

Возвращает список форм. Тип List<Form>.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс Form

метод getId()

С помощью этого метода можно получить id формы.

Не принимает параметры.

Возвращает ID формы. Тип int.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getQuestions()

С помощью этого метода можно получить список вопросов данной формы.

Не принимает параметры.

Возвращает список вопросов. Тип List<Question>.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс TokenCallback

Объект, реализующий интерфейс, может быть передан в параметре tokenCallback метода removePushToken(TokenCallback tokenCallback) класса SessionBuilder.

метод onSuccess()

Метод вызывается при успешном результате вызова метода removePushToken(TokenCallback tokenCallback) класса SessionBuilder.

Не принимает параметры.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод onFailure(WebimError<TokenCallback> WebimError)

Метод вызывается при неуспешном результате вызова метода removePushToken(TokenCallback tokenCallback) класса SessionBuilder.

Параметр WebimError — возникшая ошибка. Тип — WebimError<TokenError>.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс TokenError

Возможные ошибки, которые могут быть переданы в параметр WebimError метода onFailure(WebimError<TokenError> WebimError) интерфейса TokenCallback.

случай SOCKET_TIMEOUT_EXPIRED

Истекло время ожидания отмены привязки push-токена.

случай UNKNOWN

Полученный код ошибки не поддерживается данной версией Webim Mobile SDK.


интерфейс SessionCallback

Объект, реализующий интерфейс, может быть передан в параметре callback метода build(WebimSession.SessionCallback callback) класса SessionBuilder.

метод onSuccess()

Метод вызывается при успешном результате вызова метода build(WebimSession.SessionCallback callback) класса SessionBuilder.

Не принимает параметры.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод onFailure(WebimError<SessionError> sessionError)

Метод вызывается при успешном результате вызова метода build(WebimSession.SessionCallback callback) класса SessionBuilder.

Не принимает параметры.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


перечисляемый тип SessionError

Возможные ошибки, которые могут быть переданы в параметр sessionError метода onFailure(WebimError<SessionError> sessionError) интерфейса SessionCallback.

случай REQUEST_ERROR

Произошла ошибка при отправке запроса инициализации на сервер.

случай INVALID_PARAMETER_VALUE

Параметр сеанса имеет недопустимое значение.

случай UNKNOWN

Полученный код ошибки не поддерживается данной версией Webim Mobile SDK.


перечисляемый тип Type

Типы, которые можно получить в результате вызова метода getType() у объекта типа Question.

случай STARS

Вопрос, в котором ответ — это оценка.

случай RADIO

Вопрос, в котором ответ — это вариант из списка возможных вариантов.

случай COMMENT

Вопрос, в котором ответ — это комментарий пользователя.


перечисляемый тип AttachmentState

Используется для определения состояния загрузки файла на сервер (см. метод getState() интерфейса Attachment).

случай ERROR

Во время загрузки файла на сервер произошла ошибка. При этом метод getErrorType() интерфейса Attachment будет содержать тип ошибки, а getErrorMessage() текст.

случай READY

Файл доступен для загрузки.

случай UPLOAD

Файл загружается на сервер.


перечисляемый тип ChatState

Возможные варианты состояния чата (см. метод getChatState() интерфейса MessageStream).

Начальное состояние — NONE. Если вызван метод startChat() или один из методов отправки сообщений интерфейса MessageStream, состояние изменяется на QUEUE. Когда оператор принимает чат в обработку, его (чата) состояние изменяется на CHATTING. Когда вызывается метод closeChat() интерфейса MessageStream, состояние чата изменяется на CLOSED_BY_VISITOR. Если чат был закрыт оператором — на CLOSED_BY_OPERATOR. После того, как чат был закрыт и посетителем, и оператором, его состояние возвращается в NONE. Также это происходит после долгого отсутствия активности в чате. Также чат может быть заново начат и оператором: в этом случае состояние чата принимает значение INVITATION, а после того, как посетитель напишет что-либо в ответ, состояние чата принимает значение CHATTING.

случай CHATTING

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

Из этого состояния чат может перейти либо в CLOSED_BY_OPERATOR, либо в CLOSED_BY_VISITOR, либо в NONE.

случай CLOSED_BY_OPERATOR

Состояние чата, когда тот был закрыт оператором, но еще не закрыт посетителем.

Из этого состояния чат может перейти либо в NONE, либо в QUEUE, если посетитель напишет что-либо еще.

случай CLOSED_BY_VISITOR

Состояние чата, когда тот был закрыт посетителем, но еще не закрыт оператором.

Из этого состояния чат может перейти либо в NONE, либо в QUEUE, если посетитель напишет что-либо еще.

случай INVITATION

Состояние чата, когда тот был инициирован оператором.

Из этого состояния чат может перейти либо в NONE, либо в CHATTING.

случай NONE

Означает отсутствие чата.

Из этого состояния чат может перейти либо в INVITATION, либо в QUEUE.

случай QUEUE

Состояние чата, когда тот был инициирован посетителем.

Из этого состояния чат может перейти либо в NONE, либо в CHATTING, либо в CLOSED_BY_OPERATOR.

случай UNKNOWN

Данное состояние принимает чат при создании сессии до первого обновления состояния чата, полученного от сервера.

Также это состояние может быть получено, если SDK не может его идентифицировать (например, на сервере появились новые значения состояния чата, которые текущая версия SDK не умеет обрабатывать).


перечисляемый тип DataMessageError

Возможные ошибки, которые могут быть переданы в параметр error метода onFailure(Message.Id id, WebimError<DataMessageError> error) интерфейса DataMessageCallback.

случай UNKNOWN

Полученный код ошибки не поддерживается данной версией Webim Mobile SDK.

случай QUOTED_MESSAGE_CANNOT_BE_REPLIED

Процитированное сообщение не отмечено флагом canBeReplied или флаг не стоит в значении true.

случай QUOTED_MESSAGE_FROM_ANOTHER_VISITOR

Отправленный ID сообщения соответствует другому посетителю.

случай QUOTED_MESSAGE_MULTIPLE_IDS

Отправленный ID сообщения соответствует нескольким сообщениям (скорее всего, имеет место ошибка в базе данных).

случай QUOTED_MESSAGE_REQUIRED_ARGUMENTS_MISSING

Означает, что один или более аргумент реализованной на сервере системы цитирования не был отправлен.

случай QUOTED_MESSAGE_WRONG_ID

Был отправлен неверный ID процитированного сообщения.


интерфейс SearchMessagesCallback

Объект, реализующий интерфейс, может быть передан в параметре searchMessagesCallback метода searchMessages(String query, SearchMessagesCallback searchMessagesCallback) протокола MessageStream.

метод onResult(List messages)

Метод вызывается при успешном результате вызова метода searchMessages(String query, SearchMessagesCallback searchMessagesCallback) протокола MessageStream.

Параметр messages — список сообщений которые были найдены в результате поискового запроса.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов. Тип — List.


интерфейс SendKeyboardCallback

Интерфейс, методы которого реализуются каким-либо классом приложения.

Объект, подчиняющийся интерфейсу, может быть передан в параметре callback-метода sendKeyboardRequest(String requestMessageId, String buttonId, sendKeyboardCallback sendKeyboardCallback) интерфейса MessageStream.

метод onSuccess(Message.Id id)

Метод вызывается при успешной отправке сообщения методом sendKeyboardRequest(String requestMessageId, String buttonId, sendKeyboardCallback sendKeyboardCallback) интерфейса MessageStream.

Параметр id — ID соответствующего сообщения. Тип — Message.Id.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

Метод будет вызван после завершения работы метода sendKeyboardRequest(String requestMessageId, String buttonId, sendKeyboardCallback sendKeyboardCallback).

метод onFailure(Message.Id id, WebimError<SendKeyboardError> error)

Вызывается при неудачной отправке сообщения методом sendKeyboardRequest(String requestMessageId, String buttonId, sendKeyboardCallback sendKeyboardCallback) интерфейса MessageStream.

Параметр id — ID соответствующего сообщения. Тип — WebimError.

Параметр error — ошибка, воспрепятствовавшая успешной отправке сообщения. Тип — WebimError<SendFileError>.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

Метод будет вызван после завершения работы метода sendKeyboardRequest(String requestMessageId, String buttonId, sendKeyboardCallback sendKeyboardCallback).


перечисляемый тип DeleteUploadedFileError

Возможные ошибки, которые могут быть переданы в параметр error метода onFailure(WebimError<DeleteUploadedFileError> error) интерфейса DeleteUploadedFileCallback.

случай FILE_NOT_FOUND

Означает, что файл не найден на сервере.

случай FILE_HAS_BEEN_SENT

Означает, что файл прикреплен к сообщению и не может быть удален.

случай UNKNOWN

Неизвестная ошибка.


перечисляемый тип SendKeyboardError

Возможные ошибки, которые могут быть переданы в параметр error метода onFailure(Message.Id id, WebimError<SendKeyboardError> error) интерфейса SendKeyboardCallback.

случай NO_CHAT

Кнопка из клавиатуры чат-бота отправлена не в тот чат.

случай BUTTON_ID_NO_SET

Не установлен идентификатор кнопки.

случай REQUEST_MESSAGE_ID_NOT_SET

Не установлен идентификатор сообщения запроса.

случай CAN_NOT_CREATE_RESPONSE

Невозможно создать ответ.

случай UNKNOWN

Неизвестная ошибка.


перечисляемый тип SendFileError

Возможные ошибки, которые могут быть переданы в параметр error метода onFailure(Message.Id id, WebimError<SendFileError> error) интерфейса SendFilesCallback.

случай FILE_SIZE_EXCEEDED

Означает, что размер файла превышает максимальный размер, установленный в настройках сервера.

случай FILE_NOT_FOUND

Выбранный для отправки файл не найден на устройстве.

случай FILE_TYPE_NOT_ALLOWED

Означает, что тип файла не входит в число разрешенных типов, установленных в настройках сервера.

случай FILE_SIZE_TOO_SMALL

Означает, что файл слишком мал для загрузки.

случай MAX_FILES_COUNT_PER_CHAT_EXCEEDED

Означает, что превышено максимальное количество файлов, загружаемых в чат.

случай UPLOADED_FILE_NOT_FOUND

Неправильный способ передачи файла.

случай UNKNOWN

Неизвестная ошибка.

случай UNAUTHORIZED

Неизвестная ошибка.


перечисляемый тип SendFilesError

Возможные ошибки, которые могут быть переданы в параметр sendFilesError метода onFailure(Message.Id id, WebimError<SendFileError> error) интерфейса SendFilesCallback.

случай FILE_NOT_FOUND

Означает, что сообщение не содержит файл.

случай MAX_FILES_COUNT_PER_MESSAGE

В сообщении превышено количество отправляемых файлов в одном сообщении.

случай UNKNOWN

Неизвестная ошибка.


перечисляемый тип SendStickerError

Возможные ошибки, которые могут быть переданы в параметр sendStickerErrorWebimError метода onFailure(WebimError sendStickerErrorWebimError) протокола SendStickerCallback.

случай NO_CHAT

Возникает при попытке отправить стикер, когда чата не существует.

случай NO_STICKER_ID

Возникает, при попытке отправить стикер с пустым параметром stickerId.


перечисляемый тип State

Используется для определения состояния цитируемого сообщения (см. метод getState() интерфейса Keyboard).

случай PENDING

Возникает, когда клавиатура активна и кнопки могут быть нажаты.

случай CANCELLED

Возникает, когда клавиатура неактивна и кнопки не могут быть нажаты.

случай COMPLETED

Возникает, когда клавиатура неактивна и выбрана одна из кнопок.


перечисляемый тип RateOperatorError

Возможные ошибки, которые могут быть переданы в параметр error метода onFailure(WebimError<RateOperatorError> rateOperatorError) протокола rateOperatorCallback.

случай NO_CHAT

Возникает при попытке отправить оценку оператора, когда чата не существует.

случай OPERATOR_NOT_IN_CHAT

Возникает, когда при попытке отправить оценку оператора был передан ID оператора, не принадлежащего текущему чату.


перечисляемый тип OnlineStatus

Возможные статусы сессии.

Могут быть получены с помощью метода onOnlineStatusChanged(OnlineStatus oldOnlineStatus, OnlineStatus newOnlineStatus) интерфейса OnlineStatusChangeListener.

случай BUSY_OFFLINE

Означает, что посетитель не может отправлять сообщения вообще.

случай BUSY_ONLINE

Означает, что посетитель может отправлять сообщения в офлайн-зону, но сервер может их отклонить и вернуть ошибку.

случай OFFLINE

Означает, что посетитель может отправлять сообщения в офлайн-зону.

случай ONLINE

Означает, что посетитель может отправлять сообщения без каких-либо ограничений.

случай UNKNOWN

Означает, что либо SDK пока не получил первое обновление статуса сессии от сервиса Webim, либо статус сессии не поддерживается в текущей версии SDK.


перечисляемый тип VisitSessionState

Возможные статусы сессии.

случай CHAT

Состояние чата.

случай DEPARTMENT_SELECTION

Означает, что была произведена попытка начать чат без выбора отдела, а на сервере установлено, что выбор отделов обязателен.

Сессия ожидает начало чата с помощью метода startChatWithDepartmentKey(String departmentKey).

случай IDLE

Сессия активна, но чат пока не был начат.

случай IDLE_AFTER_CHAT

Сессия активна, но чат был уже закрыт.

случай OFFLINE_MESSAGE

Офлайн.

случай UNKNOWN

Статус еще не был получен или не поддерживается текущей версией Webim Mobile SDK.


интерфейсMessageTracker

Интерфейс реализуются внутренними сущностями SDK. Экземпляр класса, реализующего интерфейс, может быть получен с помощью метода newMessageTracker(MessageListener listener) интерфейса MessageStream.

Методы интерфейса используются для манипуляций с сообщениями, существующими в истории сообщений.

метод getLastMessages(int limit, getMessagesCallback callback)

Метод используется для запроса сообщений с начала истории сообщений.

Параметр limitOfMessages — количество следующих сообщений, не более которого должен запросить метод. Тип — int, значение может быть любым положительным больше 1 (если передано значение меньше 1, метод не выполнит никакой работы).

Параметр callback — объект класса, реализующего интерфейс GetMessagesCallback.

Ничего не возвращает.

Выбрасывает illegalArgumentException, если значение параметра limit меньше 1.

Выбрасывает IllegalStateException, если предыдущий аналогичный запрос или запрос getNextMessages(int limit, getMessagesCallback callback) не был завершен, или когда объект MessageTracker был деактивирован (см. метод destroy()), или когда соответствующий объект WebimSession был деактивирован (см. метод destroy() интерфейса WebimSession).

Выбрасывает RuntimeException, если метод был вызван из потока, не являющегося потоком, в котором был создан соответствующий экземпляр WebimSession.

Не требует предварительного вызова никаких других методов.

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

метод getNextMessages(int limit, getMessagesCallback callback)

Метод используется для запроса сообщений из истории сообщений, которая еще не отображается в текущей ленте сообщений.

Параметр limitOfMessages — количество следующих сообщений, не более которого должен запросить метод. Тип — int, значение может быть любым положительным больше 1 (если передано значение меньше 1, метод не выполнит никакой работы).

Параметр callback — объект класса, реализующего интерфейс GetMessagesCallback.

Ничего не возвращает.

Выбрасывает IllegalArgumentException, если значение параметра limit меньше 1.

Выбрасывает IllegalStateException, если предыдущий аналогичный запрос или запрос getLastMessages(int limit, getMessagesCallback callback) не был завершен, или когда объект MessageTracker был деактивирован (см. метод destroy()), или когда соответствующий объект WebimSession был деактивирован (см. метод destroy() интерфейса WebimSession).

Выбрасывает RuntimeException, если метод был вызван из потока, не являющегося потоком, в котором был создан соответствующий экземпляр WebimSession.

Не требует предварительного вызова никаких других методов.

метод getAllMessages(GetMessagesCallback callback)

Метод используется для запроса сразу всей истории сообщений, которая хранится на устройстве.

Параметр callback — объект класса, реализующего интерфейс *GetMessagesCallback.

Ничего не возвращает.

Выбрасывает IllegalStateException, если объект MessageTracker был деактивирован (см. метод destroy()), или когда соответствующий объект WebimSession был деактивирован (см. метод destroy() интерфейса WebimSession.

Не требует предварительного вызова никаких других методов.

метод resetTo(Message message)

Объект MessageTracker хранит текущий диапазон сообщений. Вызов данного метода может «сбросить» предел, до которого объект хранит историю сообщений, до определенного сообщения.

Параметр message — сообщение, до которого необходимо «сбросить» предел хранимой истории сообщений. Тип — Message.

Ничего не возвращает.

Выбрасывает IllegalStateException, если последний запрос по методу getNextMessages(int limit, getMessagesCallback callback) не был завершен, или когда объект MessageTracker был деактивирован (см. метод destroy()), или когда соответствующий объект WebimSession был деактивирован (см. метод destroy()интерфейса WebimSession).

Выбрасывает RuntimeException, если метод был вызван из потока, не являющегося потоком, в котором был создан соответствующий экземпляр WebimSession.

Не требует предварительного вызова никаких других методов. Метод может быть вызван только после того, как предыдущее обращение к объекту MessageTracker вернуло результат, иначе метод не выполнит никакой работы.

метод destroy()

Деактивирует текущий объект MessageTracker, после чего никакие методы интерфейса не могут быть использованы.

Не принимает параметры.

Ничего не возвращает.

Выбрасывает IllegalStateException, когда объект MessageTracker был деактивирован (см. метод destroy()), или когда соответствующий объект WebimSession был деактивирован (см. метод destroy() интерфейса WebimSession).

Выбрасывает RuntimeException, если метод был вызван из потока, не являющегося потоком, в котором был создан соответствующий экземпляр WebimSession.

Не требует предварительного вызова никаких других методов. Не обязателен к вызову.

метод loadAllHistorySince(Message sinceMessage, getMessagesCallback messagesCallback)

Метод используется для запроса сообщений из истории сообщений с указанного сообщения.

Параметр sinceMessage — сообщение с которого будет получена история. Тип — Message.

Параметр messagesCallback — объект класса, реализующего интерфейс GetMessagesCallback.

Ничего не возвращает.

Выбрасывает IllegalStateException, если предыдущий аналогичный запрос или запрос loadAllHistorySince(Message sinceMessage, getMessagesCallback messagesCallback) не был завершен, или когда объект MessageTracker был деактивирован (см. метод destroy()), или когда соответствующий объект WebimSession был деактивирован (см. метод destroy() интерфейса WebimSession).

Выбрасывает RuntimeException, если метод был вызван из потока, не являющегося потоком, в котором был создан соответствующий экземпляр WebimSession.

Не требует предварительного вызова никаких других методов.


интерфейс MessageListener

Интерфейс должен быть адаптирован каким-либо классом приложения. Методы Интерфейса вызываются при изменениях в ленте сообщений.

метод messageAdded(Message before, Message message)

Метод вызывается при добавлении сообщений в текущую ленту.

Важно, что вызов метода не является признаком получения именно нового сообщения: это логическая вставка сообщений в ленту. Например, при первом успешном соединении с сервером, SDK получает всю историю сообщений. Если она содержит сообщения, находящиеся в уже отображаемом в ленте временном промежутке, на каждое такое сообщение также будет вызван этот метод.

Параметр before — сообщение, до которого необходимо вставить полученное сообщение. Тип — Message. Если значение данного параметра null, полученное сообщение необходимо вставить в конце списка.

Параметр message — полученное сообщение. Тип — Message.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод messageRemoved(Message message)

Метод вызывается при удалении сообщения из ленты.

Параметр message — удаленное сообщение. Тип — Message.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод allMessagesRemoved()

Метод вызывается при удалении всех сообщений из ленты.

Не принимает параметры.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод messageChanged(Message from, Message to)

Метод вызывается при изменении какого-либо сообщения.

Сообщения как таковые не меняются: происходит замена одного объекта другим. Поэтому при вызове данного метода можно сравнивать поля сообщения, чтобы выяснить, какие из них отличаются.

Параметр from — прежний объект сообщения. Тип — Message.

Параметр to — новый объект сообщения. Тип — Message.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс Message

Интерфейс является абстракцией, представляющей отдельное сообщение внутри SDK.

Интерфейс реализован внутренними сущностями SDK, объекты которого могут быть получены в вызовах методов интерфейса MessageListener.

Объекты Message — неизменяемые. Изменения каких-либо его полей создает новый объект. На идентичность полей два объекта Message можно проверить методом equals(Object obj). Логическое соответствие объектов сообщения можно проверить, сравнив их ID (см. метод getID()).

метод getAttachment()

С помощью этого метода можно получить вложение, если это файл, отправленный посетителем или оператором (Type FILE_FROM_OPERATOR или FILE_FROM_VISITOR).

Не принимает параметры.

Возвращает экземпляр класса MessageAttachment или null, если файл находится в процессе отправки.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getData()

С помощью этого метода можно получить произвольный словарь, формируемый сервером, при использовании Type ACTION_REQUEST.

Не принимает параметры.

Возвращает словарь типа String или null, если он отсутствует.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getId()

С помощью этого метода можно получить уникальный ID cообщения.

Не принимает параметры.

Возвращает ID сообщения. Тип — Message.Id.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getQuote()

С помощью этого метода можно получить информацию о цитируемом сообщении.

Не принимает параметры.

Возвращает экземпляр класса Quote.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getKeyboard()

С помощью этого метода можно получить элемент клавиатуры чат-бота (Type Keyboard).

Не принимает параметры.

Возвращает экземпляр класса Keyboard.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getKeyboardRequest()

С помощью этого метода можно получить элемент клавиатуры, который выбрал пользователь.

Не принимает параметры.

Возвращает экземпляр класса KeyboardRequest.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getOperatorID()

С помощью этого метода можно получить ID оператора, отправившего сообщение.

Не принимает параметры.

Возвращает ID оператора или null, если сообщение было отправлено не оператором. Тип — Operator.ID.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getSenderAvatarURL()

С помощью этого метода можно получить URL для загрузки аватара отправителя сообщения (если есть).

Не принимает параметры.

Возвращает полный URL аватара отправителя сообщения или null, если аватар отсутствует. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getSenderName()

С помощью этого метода можно получить имя отправителя сообщения.

Не принимает параметры.

Возвращает имя отправителя сообщения. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getSendStatus()

С помощью этого метода можно получить статус отправки сообщения.

Не принимает параметры.

Возвращает значение перечисляемого типа SendStatus.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getSticker()

С помощью этого метода можно получить стикер в сообщении.

Не принимает параметры.

Возвращает экземпляр класса Sticker.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getText()

С помощью этого метода можно получить текст сообщения.

Не принимает параметры.

Возвращает текст сообщения. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getTime()

С помощью этого метода можно получить время отправки сообщения.

Не принимает параметры.

Возвращает количество миллисекунд, прошедших с начала эпохи до обработки сообщения сервером. Тип — long.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getType()

С помощью этого метода можно получить тип сообщения.

Не принимает параметры.

Возвращает значение перечисляемого типа Type.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод isEdited()

С помощью этого метода можно узнать, было ли сообщение отредактировано или нет.

Не принимает параметры.

Возвращает статус сообщения. Тип — Boolean.

Не требует предварительного вызова никаких других методов.


интерфейс Attachment

Интерфейс является абстракцией, представляющей файловое вложение и его состояние в сообщение.

Интерфейс реализован внутренними сущностями SDK. Объект Attachment может быть получен с помощью метода getAttachment() интерфейса Message.

метод getFileInfo()

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

Не принимает параметров.

Возвращает объект FileInfo.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getFilesInfo()

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

Не принимает параметров.

Возвращает список объектов FileInfo. Тип — List.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getErrorType()

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

Не принимает параметров.

Возвращает тип ошибки в текстовом видe. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getErrorMessage()

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

Не принимает параметров.

Возвращает текст ошибки в текстовом видe. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getDownloadProgress()

Метод, с помощью которого можно получить процент загрузки файла на сервер.

Не принимает параметров.

Возвращает процент в целочисленном виде. Тип — Int.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getState()

Метод, с помощью которого можно получить состояние загрузки файла на сервер.

Не принимает параметров.

Возвращает объект AttachmentState.

Не выбрасывает исключения.


интерфейс FileInfo

Интерфейс является абстракцией, представляющей файловое вложение в сообщение.

Интерфейс реализован внутренними сущностями SDK. Объект FileInfo может быть получен с помощью метода getFileInfo() интерфейса Attachment.

метод getContentType()

Метод, с помощью которого может быть получен MIME-тип вложения.

Не принимает параметров.

Возвращает MIME-тип вложения в текстовом видe. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getFileName()

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

Не принимает параметров.

Возвращает имя файла вложения в текстовом виде. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getImageInfo()

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

Не принимает параметров.

Возвращает объект ImageInfo или null, если вложенный файл не является изображением.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getSize()

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

Не принимает параметров.

Возвращает размер файла вложения в байтах. Тип — long.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getUrl()

Метод, с помощью которого может быть получена ссылка для скачивания файла вложения. Ссылка действительна только для текущей сессии.

Не принимает параметров.

Возвращает URL файла вложения. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс ImageInfo

Интерфейс является абстракцией, представляющей информацию о вложении, если оно является изображением. Интерфейс адаптирован внутренними сущностями SDK.

Объект ImageInfo может быть получен с помощью метода getImageInfo() интерфейса Attachment.

метод getThumbUrl()

Метод позволяет получить URL для скачивания превью изображения. Максимальные размеры по вертикали и горизонтали — 300 пикселей, но могут быть изменены на сервере. Для того, чтобы узнать точные размеры превью до тех пор, пока изображение еще не загружено, можно использовать следующий код:

int THUMB_SIZE = 300;
  int width = imageInfo.getWidth();
  int height = imageInfo.getHeight();
  if (height > width) {
      width = (THUMB_SIZE * width) / height;
      height = THUMB_SIZE;
  } else {
      height = (THUMB_SIZE * height) / width;
      width = THUMB_SIZE;
  }

Не принимает параметров.

Возвращает URL для скачивания превью изображения в текстовом виде. Тип — String. Полученная ссылка действительна только для текущей сессии.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getHeight()

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

Не принимает параметров.

Возвращает высоту изображения в пикселях. Тип — Int.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getWidth()

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

Не принимает параметров.

Возвращает ширину изображения в пикселях. Тип — Int.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс Message.Id

Интерфейс реализован внутренними сущностями SDK и используется для инкапсуляции уникального ID объекта Message (см. метод getId()).


перечисляемый тип MessageType

Используется для определения типа сообщения (см. метод getType() интерфейса Message).

случай ACTION_REQUEST

Сообщение, содержащее словарь с произвольными данными, который будет обработан приложением исходя из определяемой клиентом логики (см. метод getData() интерфейса Message).

случай CONTACT_REQUEST

Сообщение, содержащее просьбу оператора оставить свои контактные данные.

случай FILE_FROM_OPERATOR

Файл, отправленный оператором.

случай FILE_FROM_VISITOR

Файл, отправленный посетителем.

случай INFO

Автоматически сгенерированное на сервере системное сообщение (например, приветствие в начале чата).

случай KEYBOARD

Сообщение, отправленное чат-ботом.

случай KEYBOARD_RESPONSE

Сообщение от чат-бота, содержащее информацию о кнопке, которую выбрал пользователь.

случай OPERATOR

Текстовое сообщение от оператора.

случай OPERATOR_BUSY

Системное сообщение, указывающее на то, что оператор в данный момент занят.

случай VISITOR

Текстовое сообщение от посетителя.


перечисляемый тип SendStatus

Используется для определения статуса отправки сообщения (см. метод getSendStatus() интерфейса Message).

случай SENDING

Означает любое состояние сообщения до тех пор, пока оно не будет получено, обработано и отправлено всем получателям сервером.

случай SENT

Означает любое состояние сообщения после событий, перечисленных в описании SENDING.


интерфейс Department

Представление одного отдела. Предоставляет методы получения информации об отделе.

Объекты Department могут быть получены с помощью класса, реализующего интерфейс DepartmentListChangeListener, либо в результате вызова метода getDepartmentList() протокола MessageStream.

метод getKey()

Ключ отдела необходим для начала чата с определенным отделом (метод startChatWithDepartmentKey(String departmentKey) протокола MessageStream).

Не принимает параметров.

Возвращает ключ отдела. Тип — String.

Не выбрасывает исключений.

Не требует предварительного вызова никаких других методов.

метод getName()

Не принимает параметров.

Возвращает публичное имя отдела. Тип — String.

Не выбрасывает исключений.

Не требует предварительного вызова никаких других методов.

метод getDepartmentOnlineStatus()

Не принимает параметров.

Возвращает онлайн-статус отдела. Тип — DepartmentOnlineStatus.

Не выбрасывает исключений.

Не требует предварительного вызова никаких других методов.

метод getOrder()

Не принимает параметров.

Возвращает номер, представляющий порядок вывода отдела в списке. Более высокое число означает более высокий приоритет вывода отдела в списке. Тип — int.

Не выбрасывает исключений.

Не требует предварительного вызова никаких других методов.

метод getLocalizedNames()

Не принимает параметров.

Возвращает словарь локализованных имен отдела или null. Тип — Map<String, String>. Ключ — название локали, значение — соответствующее локали название отдела.

Не выбрасывает исключений.

Не требует предварительного вызова никаких других методов.

метод getLogoUrl()

Не принимает параметров.

Возвращает URL логотипа отдела или null. Тип — URL.

Не выбрасывает исключений.

Не требует предварительного вызова никаких других методов.


перечисляемый тип DepartmentOnlineStatus

Возможные статусы отдела.

Могут быть получены в результате вызова метода getDepartmentOnlineStatus()протокола Department.

случай BUSY_OFFLINE

Офлайн, состояние чатов превышено.

случай BUSY_ONLINE

Онлайн, состояние чатов превышено.

случай OFFLINE

Посетитель может отправлять офлайн-сообщения.

случай ONLINE

Посетитель может отправлять онлайн-сообщения.

случай UNKNOWN

Текущий статус не поддерживается данной версией Webim Mobile SDK*.


интерфейс Operator

Объект класса, реализующего интерфейс — это абстрактное представление каждого конкретного оператора чата. Интерфейс реализован внутренними сущностями SDK.

Объекты интерфейсаOperator могут быть получены в методах интерфейса CurrentOperatorChangeListener и getCurrentOperator() MessageStream.

метод getId()

Метод позволяет получить ID конкретного оператора.

Не принимает параметров.

Возвращает ID конкретного оператора. Тип — Operator.Id.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getName()

Метод позволяет получить имя конкретного оператора.

Не принимает параметров.

Возвращает имя конкретного оператора. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getAvatarUrl()

Метод позволяет получить URL для скачивания аватара конкретного оператора (если есть).

Не принимает параметров.

Возвращает URL для скачивания аватара конкретного оператора или null при его отсутствии. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс Operator.Id

Интерфейс реализован внутренними сущностями SDK и используется для инкапсуляции уникального ID объекта Operator (см. метод getId()).


интерфейс WebimPushNotification

Объект WebimPushNotification — это абстрактное представление конкретного push-уведомления, полученного приложением от сервиса Webim.

Интерфейс реализован внутренними сущностями SDK. Объекты WebimPushNotification могут быть получены с помощью метода parseGcmPushNotification(Bundle bundle) класса Webim.

метод getType()

С помощью этого метода можно уточнить полезную информацию конкретного объекта WebimPushNotification.

Не принимает параметров.

Возвращает значение перечисляемого типа NotificationType.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getEvent()

С помощью этого метода можно уточнить предполагаемое действие, которое подразумевает получение данного конкретного объекта WebimPushNotification.

Не принимает параметров.

Возвращает «add» (добавление информации, содержащейся в данном push-уведомлении) или «del» (добавление информации, содержащейся в данном push-уведомлении). Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getParams()

С помощью этого метода можно уточнить полезную нагрузку конкретного объекта WebimPushNotification, зависящую от его типа и содержащуюся в массиве.

Не принимает параметров.

Возвращает List<String>. Возможные варианты содержания массива — см. в описании перечисляемого типа NotificationType.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


перечисляемый тип NotificationType

Значения типа указывают на тип полезной информации, заключающейся в конкретном push-уведомдлении — могут быть получены с помощью метода getType() интерфейса WebimPushNotification.

случай CONTACT_INFORMATION_REQUEST

Означает событие, когда оператор выслал посетителю запрос контактных данных.

Словарь параметров (см. метод getParams() интерфейса WebimPushNotification) в этом случае пустой.

случай OPERATOR_ACCEPTED

Означает событие, когда оператор подключился к чату.

Словарь параметров (см. метод getParams() интерфейса WebimPushNotification) в этом случае содержит только одно значение — имя оператора.

случай OPERATOR_FILE

Означает событие, когда оператор прислал файл в чат.

Словарь параметров (см. метод getParams() интерфейса WebimPushNotification) в этом случае содержит два значения — имя оператора и название файла.

случай OPERATOR_MESSAGE

Означает событие, когда оператор прислал сообщение в чат.

Словарь параметров (см. метод getParams() интерфейса WebimPushNotification) в этом случае содержит два значения — имя оператора и текст сообщения.

случай WIDGET

Означает событие, когда оператор прислал сообщение с виджетом (данный функционал по-умолчанию не поддерживается, для его поддержки необходимо обратиться в службу поддержки).

Словарь параметров (см. метод getParams() интерфейса WebimPushNotification) в этом случае пустой.


интерфейс FatalErrorHandler

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

метод onError(WebimError<FatalErrorType> error)

Вызывается при возникновении фатальной ошибки сервиса Webim.

Параметров error — фатальная ошибка сервиса Webim. Тип — WebimError<FatalErrorType>.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


перечисляемый тип FatalErrorType

Соответствует значениям возможных фатальных ошибок, которые могут возникать в работе сервиса Webim (см. метод getErrorType() интерфейса WebimError).

случай ACCOUNT_BLOCKED

Означает, что аккаунт клиент в сервисе Webim заблокирован (например, за неуплату).

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

случай PROVIDED_VISITOR_EXPIRED

Означает, что предоставленные при создании сессии пользовательские данные (см. методы setVisitorFieldsJson(String visitorFieldsJson) и setVisitorFieldsJson(JsonObject visitorFieldsJson) классаSessionBuilder) более недействительны.

Предлагаемое поведение приложения — генерирование новых пользовательских данных и создание нового экземпляра сессии.

случай UNKNOWN

Означает возникновение какой-либо неожиданной и недокументированной ошибки.

случай VISITOR_BANNED

Возникает, когда пользователь с переданными данными (см. методы setVisitorFieldsJson(String visitorFieldsJson) и setVisitorFieldsJson(JsonObject visitorFieldsJson) класса SessionBuilder) был по какой-либо причине заблокирован оператором.

случай WRONG_PROVIDED_VISITOR_HASH

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


интерфейс NotFatalErrorHandler

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

метод onNotFatalError(WebimError<NotFatalErrorType> error)

Вызывается при возникновении нефатальной ошибки сервиса Webim.

Параметр error — нефатальная ошибка сервиса Webim. Тип — WebimError.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


перечисляемый тип NotFatalErrorType

Соответствует значениям возможных фатальных ошибок, которые могут возникать в работе сервиса Webim (см. метод getErrorType() интерфейса WebimError).

случай NO_NETWORK_CONNECTION

Эта ошибка указывает на отсутствие сетевого подключения.

случай SOCKET_TIMEOUT_EXPIRED

Эта ошибка возникает, когда сервер недоступен или существует другая причина исключения SocketTimeoutException.


интерфейс WebimError

Интерфейс реализуется внутренними сущностями SDK. Объекты WebimError передаются в параметр error метода onError(WebimError<FatalErrorType> error) интерфейса FatalErrorHandler.

Методы интерфейса предназначены для обработки фатальных ошибок, которые могут возникать при работе с сервисом Webim.

метод getErrorType()

Метод предназначен для получения конкретного типа возникшей ошибки.

Не принимает параметров.

Возвращает значение соответствующего типа Type.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.

метод getErrorString()

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

Не принимает параметров.

Возвращает текстовое представление возникшей ошибки. Тип — String.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


интерфейс WebimLog

Интерфейс, предоставляющий методы для реализации «логирования» сетевой активности Webim Mobile SDK.

Механизм может быть полезен, например, при «дебаге» «продакшен»-релизов, в которых не доступны «дебаг»-логи.

метод log(String log)

Метод, который вызывается автоматически при выходе новой записи для лога сетевой активности Webim Mobile SDK.

Параметр log — новая запись для лога. Тип — String.

Ничего не возвращает.

Не выбрасывает исключения.

Не требует предварительного вызова никаких других методов.


Возвращаемые HTTP-коды ошибок

Категория Код ошибки Значение и возможный путь решения
Общие ошибки
account-blocked Аккаунт клиента в сервисе Webim заблокирован (например, за неуплату). Обратитесь за помощью в техподдержку сервиса Webim
chat-required Ответ на действие в чате без чата
content_type_not_recognized MIME-тип вложения не распознан. Проверьте, не повреждён ли отправляемый вами файл. Также удостоверьтесь, что его содержимое соответствует одному из MIME-типов
connection-timeout Время ожидания соединения вышло. Проверьте конфигурацию сети
domain-not-from-whitelist Домен не находится в белом списке
incorrect-file-name Некорректное имя файла. Возможно, оно слишком длинное или содержит в себе недопустимые специальные символы
max_file_size_exceeded Размер загружаемого файла слишком велик. Попробуйте уменьшить размер файла или увеличить лимит на вес загружаемых файлов
file_size_too_small Размер загружаемого файла слишком мал. Возможно, вы пытаетесь загрузить пустой файл
not_allowed_file_type Загрузка файла данного формата запрещена или не поддерживается. Измените параметр, отвечающий за допустимые к загрузке типы файлов в настройках сервера
not_allowed_mime_type Загрузка файла данного MIME-типа запрещена или не поддерживается. Измените параметр, отвечающий за допустимые к загрузке MIME-типы файлов в настройках сервера
no_previous_chats Отсутствуют предыдущие чаты
no-sticker-id Для данного ID не существует привязанного к нему стикера. Проверьте свой запрос на предмет ошибок
not_matching_magic_numbers Магические числа не совпадают
max_files_count_per_chat_exceeded Достигнуто максимальное количество отправляемых в один чат файлов
provided-visitor-expired Представленные при создании сессии пользовательские данные более недействительны. Эта ошибка разрешается автоматически путём реинициализации
reinit-required Необходима реинициализация — вероятнее всего, устарел AuthToken. Эта ошибка разрешается автоматически путём реинициализации
setting_disabled Запрашиваемая настройка отключена
server-not-ready Сервер не готов ответить на запрос. Эта ошибка появляется при попытке обратиться к серверу до его полного включения. Попробуйте немного подождать
session_not_found Искомая сессия не найдена
unathorized Попытка неавторизованного доступа. Необходима авторизация
uploaded-file-not-found Загруженный файл не найден
visitor_banned Посетитель был заблокирован оператором
wrong-argument-value Ошибка возникает при поступлении на сервер запроса с неверным типом аргумента (например, String вместо int)
wrong-provided-visitor-hash-value Ошибка возникает при попытке авторизации посетителя с невалидной подписью
Ошибки цитирования сообщений в чате
quoting-message-that-cannot-be-replied Сообщение не может быть процитировано — оно не отмечено флагом canBeReplied или флаг не стоит в значении true
quoting-message-from-another-visitor Отправленный ID сообщения соответствует другому посетителю
corrupted-quoted-message-id Неверный ID цитируемого сообщения
multiple-quoted-messages-found Отправленный ID сообщения соответствует нескольким сообщениям (скорее всего, имеет место ошибка в базе данных)
quoted-message-not-found Отправленный ID не соответствует какому-либо сообщению в базе данных
required-quote-args-missing Один или более аргумент реализованной на сервере системы цитирования не был отправлен
Ошибки, связанные с аутентификацией
provided-auth-token-not-found Токен аутентификации не найден на сервере. Данная ошибка возникает только в случае использования кастомного клиентского механизма аутентификаци через токен. Вероятнее всего, токен ещё не дошёл до сервиса Webim с клиентского сервера и надо немного подождать
Ошибки, связанные с отправкой, редактированием и удалением сообщений
message_empty Попытка отправить пустое сообщение
max-message-length-exceeded Достигнута максимально допустимая длина сообщения
message_not_found Сообщение с искомым ID не найдено
not_allowed На сервере отключена возможность редактирования/удаления сообщений
message_not_owned Посетитель пытается редактировать/удалить сообщение оператора или указанный идентификатор принадлежит другому сообщению
wrong_message_kind Посетитель пытается отредактировать нетекстовое сообщение
Ошибки оценки операторов
no-chat Возникает в следующих случаях:

  • При попытке отправить оценку оператора, когда чата не существует
  • При попытке отправить нажатие на клавиатуру бота, когда чата не существует
  • При отправке сообщения посетителю, когда чата не существует и в account config значение свойста force_start_chat_on_visitor_message равно false
operator-not-in-chat Возникает, когда при попытке отправить оценку оператора был передан ID оператора, не принадлежащего текущему чату
note-is-too-long Превышен лимит максимальной длины комментария — 2000 символов
Ошибки ответов клавиатуры
button-id-not-set Не установлен идентификатор кнопки
requset-message-id-not-set Не установлен идентификатор сообщения запроса
can-not-create-response Невозможно создать ответ
Ошибки отправки диалогов по электронной почте
chat-history-sent-too-many-times История переписки была отправлена слишком много раз
Ошибки опросов survey_disabled Возникает при попытке отправить ответ на вопрос при выключенной возможности опросов на сервере
no-current-survey Возникает при попытке отправить ответ на вопрос, когда текущий опрос на сервере уже был закрыт или ещё не был начат
incorrect-survey-id Возникает при попытке отправить ответ на вопрос, передавая неверный ID опроса
incorrect-stars-value Возникает, когда был передан неправильный ответ на вопрос типа 'stars'
incorrect-radio-value Возникает, когда был передан неправильный ответ на вопрос типа 'radio'
max-comment-length-exceeded Возникает, когда был отправлен ответ на вопрос типа 'comment', превосходящий максимально разрешенную длину
question-not-found Вопрос не найден
Ошибки удаления файлов
file-has-been-sent Файл прикреплён к сообщению и не может быть удалён
file-not-found Файл не найден