При работе со списком сообщений необходимо следовать следующим практикам: при ПЕРВОМ открытии ленты событий следует загрузить список из 30 последних добавленных событий (см. описание ниже).

Получение текущих сообщений ленты

{
	UserKey: "a323b007-5f4a-4038-a82b-3d1cab56dbe2",
	ApiKey:"",
	ApiVersion: "100",
	Method: "EventTape.GetMessages",
	Parameters:  
	{
		EventTapeType: 0,
		BaseObjectId: 144921,
		BaseObjectType: 4,
		PageSize:30,
    EventTypesFilter:[0]
	}
}

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

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

Листание ленты “вниз”

{
	UserKey: "a323b007-5f4a-4038-a82b-3d1cab56dbe2",
	ApiKey:"",
	ApiVersion: "100",
	Method: "EventTape.GetMessages",
	Parameters:  
	{
		EventTapeType: 0,
		BaseObjectId: 144921,
		BaseObjectType: 4,
		PageSize:30,
    LastEventId: 2222,
    SeekDirection:1,
    EventTypesFilter:[0]
	}
}

Обратите внимание, что для получения более ранних сообщений следует проинициализировать параметр LastEventId, в который должен быть записан код самого раннего УЖЕ ЗАГРУЖЕННОГО в ленту события. В результате будет возвращено 30 элементов, коды которых меньше кода сообщения в LastEventId. Также необходимо параметр SeekDirection установить в значение 1, которое будет сообщать системе что искать нужно более ранние сообщения относительно переданного LastEventId.

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

Подгрузка новый сообщений в ленту

{
	UserKey: "a323b007-5f4a-4038-a82b-3d1cab56dbe2",
	ApiKey:"",
	ApiVersion: "100",
	Method: "EventTape.GetMessages",
	Parameters:  
	{
		EventTapeType: 0,
		BaseObjectId: 144921,
		BaseObjectType: 4,
		LastEventId:305154,
		SeekDirection:0,
		PageSize:null,
    EventTypesFilter:[0]
	}
}

Для получения более ПОЗДНИХ сообщений относительно текущих загруженных сообщений необходимо проинициализировать параметр LastEventId кодом самого ПОЗДНЕГО загруженного сообщения. При этом SeekDirection необходимо установить в 0 (искать более поздние сообщения), а параметр PageSize установить в NULL, чтобы вернулись ВСЕ без исключения новые записи.

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

<aside> 💡 ОЧЕНЬ ОЧЕНЬ ВАЖНО! вызывать метод “догрузки” сообщений в ленту необходимо ТОЛЬКО для объекта, чья лента открыта в настоящий момент и в оконном менеджере данный объект является текущим. Если лента событий в объекте в настоящий момент скрыта, то подгрузка сообщений НЕ осуществляется. Если в оконном менеджере есть объекты с открытой лентой событий, но они не являются выделенными, то подгрузка сообщений для данных объектов НЕ осуществляется.

</aside>

Фильтрация по типам сообщений

Ленту событий можно фильтровать по типам сообщений. Для фильтрации используется массив EventTypesFilter, значениями которого могут быть числовые представления перечисления AggregatedEventType (см. ниже). Например EventTypesFilter:[0, 2] будут отфильтрованы только сообщения пользователя и системные предупреждения.

public enum AggregatedEventType
{
		//сообщения пользователя (записи добавленные сотрудником)
    Message = 0,
		//обратная связь (звонки, смс и т.д.) связанные с объектом
    Call = 1,
		//системные предупреждения связанные с объектом
    Warning = 2,
		//уведомления об изменении объекта
    Change = 3
}