Несоответствие с $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 запроса.