Справочник по 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
в следующих случаях:
-
не был установлен контекст (см. метод
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
.
перечисляемый тип 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)
Метод вызывается в двух случаях:
-
Токен клиентского механизма авторизации передан или сгенерирован и требуется его отправка в сервис Webim силами клиента.
-
От сервиса Webim получена информация о том, что используемый токен ему неизвестен. Это может случиться, например, если токен не был отправлен сервису Webim сервисом клиента или не был получен сервисом Webim. В этом случае сервису Webim необходимо предоставить токен и соответствующие ему данные посетителя.
Параметр providedAuthorizationToken
— токен клиентского механизма авторизации.
Ничего не возвращает.
Не выбрасывает исключения
Не требует предварительного вызова никаких других методов.
интерфейс WebimSession
Интерфейс, позволяющий производить манипуляции с текущей сессией. Реализуется внутренними сущностями SDK.
Экземпляр класса WebimSession
получается с помощью методов класса SessionBuilder
.
N.B.
Cам по себе WebimSession
не начинает чат. Для того, чтобы начать чат, нужно вызвать либо startChat()
, либо startChatWithDepartmentKey(String departmentKey)
метод экземпляра resume()
При создании экземпляра класса WebimSession
, соответствующая ему сессия находится в приостановленном состоянии. Данный метод необходим для того, чтобы стартовать сетевую активность сессии.
Не принимает параметры.
Ничего не возвращает.
Выбрасывает IllegalStateException
, если объект сессии был деактивирован (см. метод destroy()
).
Выбрасывает RuntimeException
, если метод был вызван из потока, отличного от того, в котором был создан объект класса.
Не требует предварительного вызова никаких других методов. Необходим для полноценного функционирования сервиса в контексте приложения.
Скорость выполнения метода зависит от скорости получения ответа сервера. В результате ответа сервера могут быть вызваны различные методы MessageListener
, ChatStateListener
, CurrentOperatorChangeListener
и 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
.
Не требует предварительного вызова никаких других методов.
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
.
При отправке сообщения или файла пользователем, чат начинается автоматически, но если текущее состояние VisitSessionState
DEPARTMENT_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
.
При отправке сообщения или файла пользователем, чат начинается автоматически, но если текущее состояние VisitSessionState
DEPARTMENT_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
.
При отправке сообщения или файла пользователем, чат начинается автоматически, но если текущее состояние VisitSessionState
DEPARTMENT_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
.
При отправке сообщения или файла пользователем, чат начинается автоматически, но если текущее состояние VisitSessionState
DEPARTMENT_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
.
Параметр mimeType
— MIMЕ
-тип передаваемого файла. Тип — 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 |
Возникает в следующих случаях:
|
|
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 |
Файл не найден |