Отдел продаж
8 800 250 60 77

Запрос онлайн данных в СПИК

Чтобы сделать запрос онлайн данных (ОД), необходимо выполнить следующие действия:

  1. Пройти авторизацию в системе СКАУТ (если не пройдена).
  2. Получить список идентификаторов Объектов мониторинга, по которым необходимо получить онлайн данные.
  3. Сформировать запрос для подписки на получение ОД и указать список идентификаторов объектов мониторинга, по которым мы хотим получать данные.
  4. Подписаться на онлайн данные, вызвав у сервиса SpicOnlineDataService метод Subscribe с параметром, полученным на шаге 2. При успешном выполнении сервис вернёт SpicOnlineDataSubscriptionResponse. В нём будет находиться ключ сессии онлайн данных.
  5. Получить онлайн данные по подписке. Вызвать у сервиса SpicOnlineDataService метод GetOnlineData, передав в качестве параметра идентификатор сессии онлайн данных, полученной на предыдущем шаге (по полученному идентификатору подписки можно много раз получать онлайн-данные).

Реализацию данного алгоритма на JS можно найти в рецепте, иллюстрирующем отображение онлайн данных на карте.
Для реализации данного алгоритма на C# необходимо:

Пример на C#.

public class OnlineDataExample
{
    //заглушка сервиса подписок на получение онлайн данных
    private readonly SpicSoapOnlineDataServiceClient _dataServiceClient;

    public OnlineDataExample()
    {
        _dataServiceClient = new SpicSoapOnlineDataServiceClient();
        _dataServiceClient.Endpoint.Behaviors.Add(new AuthorizationBehavior());
    }

    /// <summary>
    /// Метод получения онлайн-данных
    /// </summary>
    /// <remarks>Необходимо пройти авторизацию перед вызовом этого метода</remarks>
    /// <param name="units">Идентификаторы объектов, по которым хотим получить онлайн-данные</param>
    public SpicOnlineDataCollection GetOnlineData(int[] unitIds)
    {
        var subscription = new SpicOnlineDataSubscriptionRequest { UnitIds = unitIds };
        var response = _dataServiceClient.Subscribe(subscription);
        var onlineData = _dataServiceClient.GetOnlineData(new SpicOnlineDataSessionId { Id = response.SessionId.Value.Id });
        return onlineData.OnlineDataCollection;
    }
}

Пример на JS.

var session = subscribeOnServer(unitIds);
var onlineData = getOnlineDataOnServer(session.Id);
return onlineData;

function subscribeOnServer(unitIds) {
    return provider.POSTAuthorized(subscribeUrl,
        {
            UnitIds: unitIds
        },
        getAuthorizationToken()).response.SessionId;
}

function getOnlineDataOnServer(subscriptionId) {
    return provider.POSTAuthorized(getOnlineDataUrl,
        {
            Id: subscriptionId
        },
        getAuthorizationToken()).response.OnlineDataCollection;
}


<<Назад                                                       К оглавлению                                                                     Далее>>

Уважаемые партнеры ГК СКАУТ.
Для доступа к Базе Знаний пожалуйста авторизируйтесь на ресурсе СКАУТ-Университет.
В качестве логина используйте свой электронный ящик, а в качестве пароля используйте пароль для доступа к ресурсам СКАУТ-Сайт и СКАУТ-Форум. Если вы не знаете или забыли свой пароль, то вы можете восстановить пароль здесь.
Также в Базе Знаний есть специальная статья, описывающая операцию по восстановлению пароля.