OpenExtensions: поиск и получение событий с заданным расширением - PullRequest
0 голосов
/ 19 июня 2020

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

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

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

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

Однако я не могу вернуть события с помощью $expand ed Расширение. Я пробовал примеры из 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"
        }
    }
}

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

1 Ответ

0 голосов
/ 07 июля 2020

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...