OpenExtensions: поиск и получение событий с заданным расширением

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

С этой целью я использую Open Extensions для записи дополнительных данных в события календаря, которые я создаю. Это работает нормально, и я вижу, что данные расширения записываются.

Я могу использовать фильтр $ для запроса событий, которые я записал в календарь пользователя:
/v1.0/me/events?$filter=Extensions/any(f: f/id eq '{id}')

Это нормально работает, и я вижу ожидаемые результаты. Стоит отметить, что идентификатор в этом запросе отлично работает либо с полной формой Microsoft.OutlookServices.OpenTypeExtension.{extensionName}, либо просто с использованием краткой формы {extensionName}

Однако я не могу вернуть события с помощью расширения $expanded. Я пробовал примеры из docs, но при использовании этого запроса он не работает:
/me/events?$filter=Extensions/any(f: f/id eq '{id}')&$expand=Extensions($filter=id eq '{id}')

Нравится:

{
    "error": {
        "code": "BadRequest",
        "message": "Parsing Select and Expand failed.",
        "innerError": {
            "date": "2020-06-19T17:14:59",
            "request-id": "d1125156-05a6-499a-b9a4-6c66e5ce377d"
        }
    }
}

Мне нужны расширенные данные расширения, чтобы соотнести событие календаря с объектами в моей системе, чтобы можно было обновлять или удалять по мере необходимости.
Кто-нибудь знает, что может происходить, или как это решить?


person GavinB    schedule 19.06.2020    source источник


Ответы (1)


Я получил ответ через другой вопрос: Получение значений 400 и 500 при попытке получить singleValueExtendedProperties

Проблема в том, что символ = внутри выражения $ expand нужно кодировать uriEncoded. Правильный запрос для использования: /me/events?$filter=Extensions/any(f: f/id eq '{id}')&$expand=Extensions($filter%3Did eq '{id}')

person GavinB    schedule 07.07.2020