Несоответствие с $filter /messages на графике

Мы столкнулись со странной проблемой (несоответствием), которая, по-видимому, связана с возможностью $ filter конечной точки выборки сообщений в Graph.

Мы отвечаем на запросы сообщений по их полю internetMessageId. Обычно это работает, но в некоторых случаях мы видели, что результирующий набор пуст (без ошибок), и странным является то, что одно и то же сообщение может быть получено по его теме или адресу отправителя.

Этот вызов API возвращает пустой результат:https://graph.microsoft.com/v1.0/users/<user_principal_name>/messages?$filter=internetMessageId eq '<CAPJZXvF23=Ut7ksuJzCV+dQa6Pjy+3+uRU7j0v-GLydAi974Rg@mail.gmail.com>'

Этот вызов API работает:https://graph.microsoft.com/v1.0/users/<user_principal_name>/messages?$filter=sender/emailAddress/address eq '<sender_address>'

0 ответов

Мы рассмотрели это, и проблема здесь в поведении приложения, а не службы. Оба запроса работают должным образом, при условии, что параметры запроса URL-адреса правильно закодированы приложением в соответствии с методами кодирования HTTP.

В первом запросе есть + символы в internetMessageId значение, которое приложение не кодирует перед отправкой запроса; служба декодирует их в пробелы, и поэтому запрос возвращает пустые результаты.

Если строка запроса верна, правильные результаты возвращаются, как и ожидалось.

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

Другие вопросы по тегам